我有一个与核心项目位于不同项目的服务(因此程序集也不同)。
我可以手动注册单身人士 RegisterSingleton<>()
但是我希望标准的linq查询能够为我解决这个问题: CreatableTypes().EndingWith("Service").AsInterfaces().RegisterAsLazySingleton();
问题是可创建的类型仅在当前程序集中显示。使用反射过载的最佳方法是什么?
我研究了从此问题获取组装件的解决方案,但它们在PCL内不起作用。
CreateableTypes()有一个CreateableTypes(Assembly assembly)可以使用的重载。要获得您的服务是从PCL项目位于组装,你应该能够使用GetTypeInfo().Assembly你的服务类型(参见本 SO答案)。
因此,得出以下结论:
var assembly = typeof(ResidingInAnotherAssemblyService).GetTypeInfo().Assembly;
CreatableTypes(assembly).EndingWith("Service").AsInterfaces().RegisterAsLazySingleton();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
657 次 |
| 最近记录: |