我有在主项目中引用的 c# 库。图书馆
获取主项目程序集;
System.Reflection使用;检索所有类型
应该使用创建类型Activator.CreateInstance(我不确定这是最好的方法)。
该库对主项目一无所知,只有一个可以通过反射获得的元数据。如何解决依赖关系?
private readonly Assembly _assembly;
public Injector()
{
_assembly = Assembly.GetEntryAssembly();
}
public List<string> GetTypes()
{
return _assembly
.GetTypes()
.Select(x => x.FullName)
.ToList();
}
public object GetType(string typeName)
{
Type type = _assembly
.GetTypes()
.First(x => x.FullName == typeName);
object instance = Activator.CreateInstance(type);
return instance;
}
可能的问题:不同的 IoC 容器(第三方库,自己编写的)。
在不强制用户提供大量设置的情况下,处理此问题并使库更加自动化的最佳方法是什么?如果不可能,您能否提供任何其他解决方案?谢谢。
编辑:如何提供对实例的依赖关系Activator.CreateInstance或直接从主(源)项目创建实例?应该允许创建包含在主项目中的任何实例。是的,主项目也对图书馆一无所知。因此,希望在主项目中进行最少的代码更改。
编辑 2:该库不会在源项目中使用,它将有自己的 UI 界面。例如,Swagger API
蓝山帝景
胡说叔叔
随时随地看视频慕课网APP
相关分类