0

Web サービスをハンドラーとして使用して一連の責任パターンを実装する、プラットフォームに依存しない (つまり、.NET MEF ではない) 手法について考えています。新しいサービスを展開し、新しい CoR コードをコンパイルするのではなく、構成情報を変更するだけで、CoR ハンドラーをさらに追加できるようにしたいと考えています。課題は、使用可能なハンドラーに関するメタデータを管理し、ハンドラーがインターフェイスに準拠していることを確認することです。

私の質問: 安全に確認できる方法についてのアイデア: 1. Web サービスはインターフェイスを実装しています 2. Web サービスは、後継者の呼び出しなど、基本クラスの動作を実装しています

コンパイルされたコードでは、タイプ セーフを保持できるため、任意のハンドラーが必要なインターフェイスと動作を保証する抽象基本クラスから派生していることがわかります。サービスの世界ではそれが欠けているようです。

4

1 に答える 1

0

これは有効な質問のようですが、かなり単純な質問です。

後でコードをロードする場合でも、実行時に元のコードでは見られなかったタイピングシステムの保護が提供されます。

ここでの推奨されるアプローチは、実装者(チェーン)のリストを含むプロパティファイルのようなものを用意することだと思います。次に、コードで、実行時に各ハンドラーのインスタンスをインスタンス化してチェーンを構築する方法が必要になります。インスタンスを作成するときは、そのタイプを確認する必要があります。たとえば、Javaでは、instanceof(通常は忌まわしいですが、シナリオをロードするためのパスを取得します)またはisAssignableFromの形式を取ります。Objective Cでは、conformsToProtocolです。

そうでない場合は使用できず、コンソールにエラーを吐き出すことができます。

于 2013-03-06T06:53:48.820 に答える