《JSON序列化》二

   我们系统中的常用类型,都有对应的序列化器来支持。至于客户端和服务器端的远程调用,我们通过Asp.net AJAX扩展的web service来实现,先看看服务器端的代码:

 

 namespace StepByStep.Forms
 {
	[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class AJAXService : System.Web.Services.WebService
    {
        public class WebServerInfo
        {
            public DateTime ServerTime
            {
                get;
                set;
            }
 
            //如果想在序列化时忽略此属性,请打开下一行的注释
            //[ScriptIgnore]
            public string ServerInformation
            {
                get;
                set;
            }
        }
 
        [WebMethod]
        public WebServerInfo GetServerInfo()
        {
            WebServerInfo result = new WebServerInfo();
 
            result.ServerTime = DateTime.Now;
            result.ServerInformation = GetServerInformation();
 
            return result;
        }
 
        private static string GetServerInformation()
        {
            StringBuilder strB = new StringBuilder();
 
            using (TextWriter writer = new StringWriter(strB))
            {
                writer.WriteLine("MachineName: {0}", Environment.MachineName);
                writer.WriteLine("OS Version: {0}", Environment.OSVersion.VersionString);
                writer.WriteLine("Is 64 bits: {0}", Environment.Is64BitOperatingSystem.ToString());
                writer.WriteLine("Processor Count: {0}", Environment.ProcessorCount);
            }
 
            return strB.ToString();
        }
    }
}

 再看看客户端的代码:

 

<asp:ScriptManager runat="server" ID="scriptManager" EnableScriptGlobalization="true">
        <Services>
            <asp:ServiceReference Path="~/Forms/AJAXService.asmx" />
        </Services>
  </asp:ScriptManager>
         <SOA:SubmitButton runat="server" Text="Get Server Info" AsyncInvoke="onGetServerInfo" />
  <script type="text/javascript">
        function onGetServerInfo() {
            StepByStep.Forms.AJAXService.GetServerInfo(onGetServerInfoSuccess, onFailed);
            //这个名字空间需要和服务器端对应
            return false;
        }
 
        function onGetServerInfoSuccess(serverInfo) {
            $get("serverInfoText").innerText = serverInfo.ServerTime;
            $get("serverInfoText").innerText += "\n" + serverInfo.ServerInformation;
 
            SubmitButton.resetAllStates();
        }
 
        function onFailed(e) {
            SubmitButton.resetAllStates();
            $showError(e);
        }
 
  </script>

  在这个过程中,涉及到的对象序列化,都会遵循Asp.net AJAX的JSON序列化机制。关于JSON序列化,还有很多等待着自己去研究,继续钻研......

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值