1

我将使用 StructureMap 作为 DI 的一种方式。我将使用 xml 作为我的 DI 配置。我有两个问题。

第一个是如何使用自定义的xml文件名而不是StructureMap.Config?例如,在我的控制台应用程序中,如果我想使用 myDIStructure.config 文件,我应该在 main() 中使用什么类和方法:

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

第二个问题是我如何在配置文件中定义具有类类型的通用接口。例如,我有以下接口和类:

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

然后在我的控制台应用程序中,我想将 PlugInFamily 用于 ProcessData 接口类型,将 Plugin 用于 MyProcessData。不确定这在 StructionMap 中是否可行以及如何实现?

4

1 回答 1

1

首先 - 我越来越认为 xml 配置选项现在主要是为了向后兼容。主要的 StructureMap 代码现在使用基于代码的注册表方法。

重新使用自定义文件;我还没有尝试过,但StructureMapConfiguration.IncludeConfigurationFromFile(...)看起来很有希望。

重新泛型...确实,这是 xml 的复杂性之一;-p

编辑:根据用户组中的这篇文章,看起来反引号可能会起作用:

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