从WCF服务序列化System.Type并从Silverlight客户端反序列化?

时间:2011-04-25 03:01:13

标签: c# wcf silverlight-4.0

我正在尝试完成从WCF REST JSON服务向Silverlight客户端发送System.Type实例的任务。虽然System.Type被标记为Serializable,但是如果我尝试让我的OperationContract方法实现返回System.Type,则我的WCF服务会响应服务器错误。例如,

[OperationContract]
        [WebInvoke(Method = "GET",
                    ResponseFormat = WebMessageFormat.Json,
                    UriTemplate = "type")]
        public Type getType()
        {
            return typeof(string);
            //request error: The server encountered an error processing the request. See server logs for more details.
        }

我还没有将System.Type序列化以使用System.Web.Script.Serialization.JavaScriptSerializer或DataContractSerializer。我只有序列化才能与BinaryFormatter一起使用。问题是,Silverlight 4没有BinaryFormatter。我找到了this Silverlight二进制序列化库,看起来很有希望但是没有成功序列化System.Type。

有没有人对如何从WCF服务序列化System.Type然后从Silverlight反序列化有任何想法?工作解决方案的代码段示例将非常有用并且受到赞赏。

1 个答案:

答案 0 :(得分:1)

Type无法以所描述的方式使用(并注意[Serializable]仅适用于BinaryFormatter)。您最好的选择是在AssemblyQualifiedName处运输并在每端加载,但请注意,您需要在每一端都使用声明组件才能使其正常工作。

最终,平台之间发送Type的目标并没有多大意义,我很害怕。如果您可以更具体地了解您想要完成,我们可以建议更好的计划吗?

相关问题