首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型DataMember

类型DataMember
EN

Stack Overflow用户
提问于 2014-05-05 07:27:28
回答 1查看 554关注 0票数 1

我正往WCF走去。

我用下面的ServiceContract创建了一个WCF服务

代码语言:javascript
复制
[ServiceContract]
public interface IFrameRegistration
{
    [OperationContract]
    void RegisterFrame(Frame frame);

    [OperationContract]
    void UnregisterFrame(string frameName);

    [OperationContract]
    IList<Frame> GetRegisteredFrames();

    [OperationContract]
    Frame GetFrameByName(string frameName);
}

框架-DataContract看起来如下:

代码语言:javascript
复制
[DataContract]
public class Frame
{
    [DataMember]
    public string FrameName { get; set; }
    [DataMember]
    public Type FrameType { get; set; }
}

WCF-服务运作良好。它开始了,我可以从我的客户应用程序访问它。

在我的客户端应用程序中,我想调用RegisterFrame-Method。为此,我使用以下代码:

代码语言:javascript
复制
FrameRegistrationClient client = new FrameRegistrationClient();
client.RegisterFrame(new Frame
{
    Name = "Login",
    Type = typeof(LoginWindow)
});

LoginWindow是一个WPF窗口.

对RegisterFrame的调用引发一个异常,该异常看起来类似于:

类型'System.RuntimeType‘的数据记录名为'RuntimeType:http://schemas.datacontract.org/2004/07/System’,这是不需要的。尝试使用DataContractResolver或将所有未知类型添加到已知类型的静态列表中。..。

不确定异常消息是否正确。我把它从德语翻译过来了。

如何将FrameType作为Type发送给我的客户?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-05 08:08:24

不能像这样序列化System.Type类型。您可以添加一个字符串属性,如下所示:

代码语言:javascript
复制
[DataContract]
public class Frame
{
    [DataMember]
    public string FrameName { get; set; }

    [DataMember]
    public string FrameTypeName
    {
        get
        {
            // or FrameType.FullName, depends on compatibility between client & server
            return FrameType != null ? FrameType.AssemblyQualifiedName : null;
        }
        set
        {
            FrameType = value != null ? Type.GetType(value, true) : null;
        }
    }

    // don't serialize this one
    [IgnoreDataMember]
    public Type FrameType { get; set; }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23467073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档