4

DisplayName / Name 属性を取得して WCF サービスに表示するにはどうすればよいですか?

これは、WCF サービスのオブジェクトです。

[DataContract]
public class Person
{
    [DataMember]
    public int PersonId { get; set; }
    [DataMember]
    [Display(Name = "Name")]
    public string Name { get; set; }
    [DataMember]
    [DisplayName("Date of Birth")]
    public DateTime? DateOfBirth { get; set; }
    [DataMember]
    public string Gender { get; set; }
    [DataMember]
    public string Telephone { get; set; }
    [DataMember]
    public string Email { get; set; }
}

WCF サービスに基づいて作成したフォームにわかりやすい名前を表示したいと考えています。どうやってやるの?

MVC4 ビューにコードを表示する

<div id="online">

        @Html.EditorFor(m => m.Name)

        @Html.EditorFor(m => m.Telephone)
        @Html.EditorFor(m => m.Fax)
        @Html.EditorFor(m => m.Email)

</div>
4

1 に答える 1

6

WCF サービスに基づいて作成したフォームにわかりやすい名前を表示したいと考えています。どうやってやるの?

できません。

属性はシリアライザーによって読み取られますが、サービス アセンブリで定義されます。クライアントに送信される内容は、使用されるバインディングによって異なりますが、たとえば SOAP メッセージ (*HttpBinding) では、シリアライザー[DataMember(Name = "Foo")]が XML 内の要素の名前を変更するため、属性が必要になります。

クライアント プロキシのクラスに適切な属性を適用する必要があります。

Reuse Types別の方法は、参照を生成するときにチェックすることです。クライアントは、サービスが使用する同じアセンブリのクラスを使用するため、クライアントで属性にアクセスできます。

于 2012-12-19T14:17:59.487 に答える