1

C#で次のことが可能かどうか疑問に思っていました:

基本クラス:

public abstract AbstractClass { }

そして、いくつかの子クラス:

public class ConcreteClass : AbstractClass 
{
   public int SomeMethod(){}
}


public class ImplClass : AbstractClass 
{
   public int SomeOtherMethod(){}
}

基本クラスを介して (直接的または間接的に) 固有のすべてのクラスからすべてのメソッドを傍受することは可能ですか?

少し早いですがお礼を

4

2 に答える 2

1

C# は AOP をサポートしているので、それは可能かもしれません

コード インジェクション スロー属性: リフレクションを使用してクラスの属性を取得し、目的のメソッドを呼び出す (一般的な使用法)

Spring.NetのようなIOC フレームワークを使用することも、別の選択肢かもしれません。(高度なオプション、サードパーティ ライブラリを使用)

ContextBound Objects approchMarshalByRefObject :またはContextBoundObjectを使用してクラスを継承できますIMessageSink。(難しい方法)

アプローチを比較した素敵な記事がここにあります

于 2013-03-16T15:06:04.207 に答える
0

これは実行可能であり、MSDN の例に従えば理解できます。http ://msdn.microsoft.com/en-us/library/sf985hc5%28v=vs.71%29.aspxを参照してください。

抽象メソッドには次の特徴があります。

抽象メソッドは暗黙的に仮想メソッドです。抽象メソッドの宣言は、抽象クラスでのみ許可されます。抽象メソッド宣言は実際の実装を提供しないため、メソッド本体はありません。メソッド宣言は単にセミコロンで終了し、署名の後に中括弧 ({ }) はありません。

于 2013-03-16T11:43:58.597 に答える