0

Web サービスからデータを取得する Silverlight 3 アプリケーションがあります。Web サービスへの参照を追加すると、Web サービスで使用されるすべてのクラスがプロキシ クラスで定義されます。ここまでは順調です...今度は、Silverlight 3 で提供される DataForm を使用したいと思います。そのコンポーネントを使用するには、クラスにメタデータを追加する必要があります (たとえば、以下のコードを参照)。

public class Movie : IEditableObject
{
    public int MovieID { get; set; }

    [Display(Name="The Movie Name")]
    public string Name { get; set; }    
}

私の質問は、クラス Movie が .NET によって生成されたプロキシ クラスで定義されていることを考慮して、生成されたクラスを変更せずに属性/メタデータを Movie クラスのプロパティに追加するにはどうすればよいですか?

ありがとう

4

3 に答える 3

2

要するに; あなたはそうしない。生成されたコードは編集しないでください。変更内容は次回の生成時に失われます。

代わりに、アプリケーション内に独自のクラスを作成し、生成されたプロキシ クラスを内部クラスに変換する (およびその逆の)Movieメソッドを作成してから、内部クラスに目的の動作を持たせます。ほとんどのコードが生成されたプロキシ クラスを認識しないように、通常はこれを低レベルでラップします。MovieMovie

于 2009-07-22T06:01:39.827 に答える
1

Web サービスを .NET RIA サービスを使用するように変換する可能性がある場合は、この手法を使用して、ラッパー クラスを使用せずにプロパティに属性を適用できます。

http://blogs.msdn.com/brada/archive/2009/07/21/business-apps-example-for-silverlight-3-rtm-and-net-ria-services-july-update-part-7-サービスベースのデータストア.aspx

RIA サービスでは、サーバー側で属性を適用します。コード ジェネレーターは、コードを生成するときにクライアント側でも属性を取得して適用するのに十分なほどインテリジェントです。

于 2009-07-22T12:00:27.823 に答える
0

生成されたクラスに何かを追加する必要がある場合でも、部分クラスを使用して、生成されたクラス内で何も変更せずに達成できます。

于 2009-07-22T06:20:44.920 に答える