0

Webサービスの一部として使用していた列挙型にカスタム属性を追加しました。Winフォームアプリケーションへのサービス参照としてWebサービスを追加すると、列挙型自体は表示されますが、カスタム属性はサービス参照プロキシオブジェクトに表示されません。私は全体を見渡してみましたが、解決策に近いものは見つかりませんでした。

私は不可能なことをしようとしていますか?

サーバー側のコード:

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,
}
4

1 に答える 1

2

属性は言語機能であり、SOAP メッセージでそれらを表す標準的な方法はありません。だからあなたがしようとしていることは不可能です。代わりに、型を属性として追加するか、.NET 属性値を XML 属性に移動するカスタム シリアライザーを作成することもできますが、それは移植可能ではありません。仕事の。

于 2009-12-26T13:45:27.750 に答える