繁体   English   中英

ScriptIgnore在WCF REST服务应用程序上不起作用

[英]ScriptIgnore not working on WCF REST service application

我启动了一个Visual Studio WCF Rest Service应用程序项目,在该项目中,我想要一个具有返回序列化对象的Json格式消息的服务,并且希望该对象的某些字段不被序列化。 我必须说,我对WCF的知识非常基础,并且我使用了Visual Studio中的Rest Service Application项目,因为这是一种快速实现我所需要的简单方法。

假设这是我拥有的对象:

public class BaseMessage
{
    public string errorCode { get; set; }
    public string errorMessage { get; set; }
}

这是我的代码

    [WebGet(UriTemplate = "/v1/test", 
    ResponseFormat = WebMessageFormat.Json),OperationContract]

    public BaseMessage Test()
    {
        return (new BaseMessage { errorCode = "000", errorMessage = "test" });
    }

我到处都读到我需要做的就是将[ScriptIgnore]属性分配给我不想序列化的属性。 但是,如果我这样做,那是行不通的。 无论如何,我都将它们序列化。

实现目标的唯一方法就是以这种方式声明要返回的对象:

[Serializable]
public class BaseMessage
{
    public string errorCode;
    [NonSerialized]
    public string errorMessage;
}

这样,我就可以根据需要对类进行序列化。 但这使我很烦恼,因为我可能做得不好。 我这样做对吗?

我认为您应该为数据对象使用[DataContract]属性,为对象成员使用[DataMember]属性

就像这里http://msdn.microsoft.com/en-us/library/ms733127.aspx

当您想忽略一个项目时; 您将其标记为[IgnoreDataMember]属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM