の機能に応じて、いくつかのオプションがありますMoreFunctionality
。
1:次のように、親クラスではなく汎用デコレータクラスにします。
public class MoreFunctionality<TEntities> where TEntities : ObjectContext
{
private readonly TEntities _objectContext;
public MoreFunctionality(TEntities objectContext)
{
this._objectContext = objectContext;
}
public TEntities ObjectContext
{
get { return this._objectContext; }
}
// Other behaviour
}
...そして、の代わりにデコレータを渡しObjectContext
ます。
2:それをインターフェースにし、次のような拡張メソッドを使用して動作を追加します。
public interface IMoreFunctionality
{
}
public partial class CLMEntities : ObjectContext, IMoreFunctionality
{
}
public static class MoreFunctionalityExtensions
{
public static void SomeFunctionality(
this IMoreFunctionality moreFunctionality)
{
// Do something...
}
public static void SomeMoreFunctionality(
this IMoreFunctionality moreFunctionality)
{
// Do something else...
}
}