【问题标题】:Passing enum value as string将枚举值作为字符串传递
【发布时间】:2013-11-10 15:12:44
【问题描述】:

这是一个示例代码:

[DataContract]
public enum SessionOperation
{
    [EnumMember]
    Update,
    [EnumMember]
    Register
}

[DataContract]
public class RequestObject
{
    [DataMember]
    public long ClientId { get; set; }
    [DataMember]
    public long SessionId { get; set; }
    [DataMember]
    public SessionOperation Operation { get; set; }
}

及运营合同:

[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
BaseResponseObject Request(SessionData requestObject);

我想在我的 RESTful WCF 服务中实现的是将 SessionOperation 作为字符串而不是值传递? 喜欢:

{"ClientId": 11935,"SessionId": 635193261351796051, "Operation": "Register"}

是否可以不手动修改?

【问题讨论】:

    标签: wcf


    【解决方案1】:

    你可以这样做:

    EnumMember(Value="Update") 
    

    MSDN

    【讨论】:

    • 没用。我得到:反序列化 RequestObject 类型的对象时出错。值“Register”无法解析为“Int64”类型。
    • 它对我不起作用。 WCF 服务无法解析带有字符串值的 JSON 枚举字段。请参考这个stackoverflow.com/questions/2121010/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2023-03-04
    • 2021-11-22
    • 2015-12-19
    • 2011-10-03
    相关资源
    最近更新 更多