1

我有解决下一个问题的任何模式或内部解决方案:

我有接口ImyInterface(或一些基类)和属性myAttribute。我需要一个工厂类,它为我提供了使用空构造函数搜索所有类型、继承ImyInterface并用属性myAttribute标记的功能。

我想以不同的模式搜索:1)当前程序集中的搜索类型 2)所有解决方案程序集中的搜索类型 3)目标库(.lib 或 .dll)中的搜索类型

结果我想看到这样的东西:

一些寻求的类型实现:

[myAttribute(uniqueTypeNameOrSomethingLikeThat = "SuperClass")]
public class mySomeResource:ImyInterface
{
   mySomeResource(){...}
}

工厂使用:

  myResourceFactory  factory = new myResourceFactory(typeof(ImyInterface), typeof(myAttribute));

  factory.ScanThisAssembly();
  factory.ScanDirrectory("C:\\libraries");

  var atlast = (ImyInterface)factory.Create("SuperClass");

我已经编写了自己的解决方案,但我害怕“重新发明轮子”。

对这个问题有任何想法/经验吗?

4

1 回答 1

4

这种模式称为控制反转。大约有一百万个依赖注入容器解决了这个问题,每个容器都有自己的积极和消极的怪癖。选择一个你最喜欢的,或者如果没有一个适合你的需要,你可以自己动手。

于 2013-06-17T13:26:32.200 回答