(私の悪い英語でごめんなさい)
Silverlight 4 +RIAサービス+EF4コードのみのアプリケーションでは、DbContextに「IsActive」フィールドを含むクラスがいくつかあります。エンティティにこのフィールドがあるかどうかをクライアントから知り、取得したいと思います。私の最初の考えは、インターフェースを使用することでした。
public interface IHasActiveField
{
bool IsActive {get; set;}
}
public class Data: IHasActiveField
{
public bool IsActive {get; set;}
}
これはサーバーでは正常に機能しますが、クライアントでは、RIAで生成されたコードにインターフェイスへの参照がないため、テストできません。クライアント側で、フィールドをif (obj is IHasActiveField)
使用して基本クラスから継承しようとした場合も同じことが起こります。IsActive
クラスData
は常にから継承しEntity
ます-おそらく、リフレクションを使用してフィールドが存在するかどうかを確認するか、すべてのタイプ(if (obj is Data)
)をテストすることができますが、よりエレガントな方法が可能であれば、それははるかに優れています:)