gpt4 book ai didi

wcf - 在 WCF 中命名通用 DataContract

转载 作者:行者123 更新时间:2023-12-03 12:41:49 27 4
gpt4 key购买 nike

我使用通用类作为响应数据协定。一切都很好,这显着简化了我的 WCF 服务的设计。

每个请求都有一个标准响应对象,其签名如下:

  • 状态(枚举)
  • 消息(字符串)
  • 结果 (T)

  • 下面是响应类:
    [DataContract]
    public class Response<T>
    {
    public Response() {}

    public Response(T result)
    {
    this.result = result;
    if (result != null)
    {
    this.status = Status.StatusEnum.Success;
    }
    else
    {
    this.status = Status.StatusEnum.Warning;
    }
    }

    public Response(T result, Status.StatusEnum status)
    {
    this.status = status;
    this.message = message;
    }

    public Response(T result, Status.StatusEnum status, string message)
    {
    this.status = status;
    this.message = message;
    this.result = result;
    }

    [DataMember]
    public Status.StatusEnum status { get; set; }

    [DataMember]
    public string message { get; set; }

    [DataMember]
    public T result { get; set; }
    }

    这非常有效。我唯一的问题是 WCF 客户端为这个对象“ResponseOfAccountnT9LOUZL”赋予了一个非常糟糕的名称

    有没有办法解决这个问题?

    我应该将此类用作继承的抽象类吗?
    我宁愿没有多个类使我的代码困惑。

    最佳答案

    好的,找到了Answer

    您可以使用以下语法指定序列化版本:

    [DataContract(Name = "MyClassOf{0}{1}")]

    class MyClass { }



    因此,如果我有一个名为 Response 的类,它采用 Generic T 参数
    我会用

    [DataContract(Name = "ResponseOfType{0}")]

    class Response { }

    关于wcf - 在 WCF 中命名通用 DataContract,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/509803/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com