0

この質問が Web 上のさまざまな形で尋ねられているのを見てきましたが、決定的な答えはありません。そして、これは決定的な答えのためフォーラムなので....

SQL データベースに基づいて、Silverlight クライアントにエンティティ オブジェクトを提供するために WCF を使用しています。

クライアント側のみでこのオブジェクトのクラスを拡張したいと思います。バインドのみに意味があり、メイン オブジェクトに格納する意味がないプロパティを作成することに興味があります。このクラスを拡張することは可能ですか?そうでない場合、この種のことを行うための「ベストプラクティス」はありますか?

ありがとう、wTs

4

1 に答える 1

1

生成されたクラスには実際に修飾子 'partial' があるため、それらを拡張することができます。

たとえば、この DataContract:

[DataContract]
public class TestObject
{
    [DataMember]
    public int Id { get; set; }
    [DataMember]
    public string Title { get; set; }
}

クライアント側で次のように拡張できます。

namespace SilverlightTest.ServiceReference1
{
    public partial class TestObject
    {
        public string ExtendedTitle
        {
            get { return this.Id+" "+this.Title; }
        }
    }
}

名前空間の名前に注意してください。サービス参照の名前空間と同じでなければなりません。

于 2011-02-15T18:23:35.510 に答える