我启动了一个 Visual Studio WCF Rest 服务应用程序项目,我希望有一个服务返回带有序列化对象的 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;
}
通过这种方式,我可以根据需要对类进行序列化。但这让我很烦恼,因为我可能没有正确地做这件事。我这样做对吗?