1

DI を行う方法として StructureMap を使用します。DI 構成として xml を使用します。2 つの質問があります。

1 つ目は、StructureMap.Config の代わりにカスタマイズされた xml ファイル名を使用する方法です。たとえば、私のコンソール アプリケーションで myDIStructure.config ファイルを使用する場合、main() で使用するクラスとメソッドは次のとおりです。

private static void main(string[] args) {
    //? OjbectFactory.UserConfigurationFile = "myDIStructure.config";
    Program program = ObjectFactory.GetInstance<Program>();
    ...
}

2 番目の質問は、構成ファイルでクラス タイプを使用してジェネリック インターフェイスを定義する方法です。たとえば、次のインターフェイスとクラスがあります。

public interface ProcessData<T> {
   void ReadData(T data);
   void ProcessData(T data);
   void SaveData(T data);
}
...
public class Data1 {....}  // this class will be used for ProcessData<T>
....
public class MyProcessData : ProcessData<Data1> {....} // implementation class

次に、コンソール アプリケーションで、ProcessData インターフェイス タイプに PlugInFamily を使用し、MyProcessData に Plugin を使用したいと考えています。これがStructionMapで可能かどうかわからないのですが、どうすればよいですか?

4

1 に答える 1

1

まず、xml 構成オプションは主に下位互換性のために残されているという意見が増えています。メインの StructureMap コードは、コードベースのレジストリ アプローチを使用するようになりました。

カスタムファイルの再使用; 私はそれを試していませんが、StructureMapConfiguration.IncludeConfigurationFromFile(...)有望に見えます。

ジェネリックについて...確かに、それはxmlの複雑さの1つです;-p

編集:ユーザーグループのこの投稿に基づいて、おそらくバックティック表記が機能するようです:

<DefaultInstance 
  PluginType="MyDemo.IRepository`1, MyDemo" 
  PluggedType="MyDemo.UserRepository , MyDemo" /> 
于 2009-04-21T07:09:42.000 に答える