2011-01-22 21 views
0

私は、システムAへのプラグインであるアセンブリを持っています(IASystemPluginインタフェースを実装しています)。システムAはシステムBのコンポーネントです。プラグインからシステムBレベルに例外をスローしたいと思います。残念ながら、システムAとBの両方がすべての既知の例外を処理し、すべての未知のものを再スローするので、B.SystemBExceptionインスタンスをスローする必要があります。ホストアセンブリを参照せずに例外をスローしますか?

システムとしてクライアントには私はBクラスへの参照がありませんでした。私はそうしないと良いでしょう(システムレベル以外のすべての参照はレベルAに登録する必要があります。 。この場合、見た目は非常にシンプルなB.SystemBExceptionクラスをインスタンス化できますか?

どのようなハッキング方法も理解できます。私はあなたができることがあります推測してい

よろしく、

+0

あなたが*持っていることを除外します。 * 30 *アセンブリを参照することはほとんど必要ありません。例外タイプを宣言するクラス。 –

+0

それを動作させるには、アセンブリを "プラグイン"としてシステムAに登録する必要があります。 "プラグイン"に非システムアセンブリへの参照が含まれている場合は、それらもすべて "プラグイン"として登録する必要があります。それ以外の場合、Register()メソッドはfalseを返します。再帰的には、参照されているすべてのアセンブリを参照アセンブリなどに登録する必要があります.30を超えるため、少し例外がインスタンス化されてしまいます。 – noober

答えて

1

は反射により、クラスを見つけて、そのインスタンスを作成します。しかし、本当にこれをしたいですか?私はシステムインタフェースがそのようなコンテンツに対応するために作られたと仮定していますか?

いずれにしても、他のアセンブリによってロードされているため、そのクラスにアクセスできることを前提としています。これを参照してください:http://www.codeproject.com/KB/dotnet/Reflection.aspx

詳細が必要な場合は教えてください。

+0

それは動作するはずですが、私はそれをロードするアセンブリを見つける必要があります。私はCOMのGUIDのようなものについて考えました。システムBを例外が独自のものだと思うように自分のクラスを実装します。 – noober

関連する問題