【问题标题】:Custom attributes with Service Reference proxy具有服务引用代理的自定义属性
【发布时间】:2009-12-26 13:39:00
【问题描述】:

我将自定义属性添加到作为 Web 服务的一部分使用的枚举中。当我将 Web 服务作为服务引用添加到 win 表单应用程序时,自定义属性不会出现在服务引用代理对象中,尽管枚举类型本身确实出现了。我已经看了一遍,没有找到任何接近解决方案的东西。

我是否正在尝试做一些不可能的事情?

服务器端代码:

public enum ServiceEnum
{
    [ServiceEnumTest("Boat")]item1,
    [ServiceEnumTest("Plane")]item2,
    [ServiceEnumTest("Bicycle")]item3,
    [ServiceEnumTest("Car")]item4,
    item5
}

客户端代理生成代码:

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="ServiceEnum", Namespace="http://tempuri.org/")]
public enum ServiceEnum : int {

    [System.Runtime.Serialization.EnumMemberAttribute()]
    item1 = 0,

    [System.Runtime.Serialization.EnumMemberAttribute()]
    item2 = 1,

    [System.Runtime.Serialization.EnumMemberAttribute()]
    item3 = 2,

    [System.Runtime.Serialization.EnumMemberAttribute()]
    item4 = 3,

    [System.Runtime.Serialization.EnumMemberAttribute()]
    item5 = 4,
}

【问题讨论】:

    标签: .net wcf attributes proxy-classes service-reference


    【解决方案1】:

    属性是一种语言特性,在 SOAP 消息中没有标准的方式来表示它们。所以你正在尝试的是不可能的。相反,您可以将类型添加为属性,或编写 custom serialiser 将 .NET 属性值移动到 XML 属性,但这不会是可移植的 - 如果没有很多工作。

    【讨论】:

      猜你喜欢
      • 2013-02-28
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 2013-09-01
      相关资源
      最近更新 更多