jjzjj

ISomething

全部标签

c# - 具有 2 个实现相同接口(interface)的类的 IOC/DI

我对实现相同接口(interface)和依赖注入(inject)的2个类的场景感到困惑。publicinterfaceISomething{voidDoSomething();}publicclassSomethingA:ISomething{publicvoidDoSomething(){}}publicclassSomethingAB:ISomething{publicvoidDoSomething(){}}publicclassDifferent{privateISomethingThisSomething;publicDifferent(ISomethingSomething)

c# - MEF:如果我有多个导出但只需要一个导入怎么办?

我正试图将注意力集中在MEF上。有一件事我不明白。假设我有一个名为ISomething的接口(interface),它是一个契约(Contract),并且我在包含我的应用程序的文件夹中有多个程序集,我不知道其中有多少ISomething实现,或者哪个包含一个。如果我创建了一个使用MEF的主机应用程序,并且想要获得一个ISomething,但只有一个,MEF如何决定它将给我哪个实现?或者,类似于普通的IoC容器,我该如何告诉它应该使用哪个实现?预先感谢您的回答。 最佳答案 参见thisblogpost讨论这个问题和你有的一些选择。此外

c# - 为什么在 C# 中使用泛型约束

我在MSDN上阅读了一篇关于C#泛型的优秀文章。我脑海中浮现的问题是——我为什么要使用通用约束?例如,如果我使用这样的代码:publicclassMyClasswhereT:ISomething{}我不能用ISomething切换这个类中对T的所有引用吗?使用这种方法有什么好处? 最佳答案 你问,“我不能用ISomething切换这个类中对T的所有引用吗?”所以我认为你的意思是比较:publicclassMyClasswhereT:ISomething{publicTMyProperty{get;set;}}与:publicclas

c# - 为什么在 C# 中使用泛型约束

我在MSDN上阅读了一篇关于C#泛型的优秀文章。我脑海中浮现的问题是——我为什么要使用通用约束?例如,如果我使用这样的代码:publicclassMyClasswhereT:ISomething{}我不能用ISomething切换这个类中对T的所有引用吗?使用这种方法有什么好处? 最佳答案 你问,“我不能用ISomething切换这个类中对T的所有引用吗?”所以我认为你的意思是比较:publicclassMyClasswhereT:ISomething{publicTMyProperty{get;set;}}与:publicclas

c# - 如何找到实现给定接口(interface)的所有类?

在给定的命名空间下,我有一组实现接口(interface)的类。我们称它为ISomething。我有另一个类(我们称它为CClass),它知道ISomething但不知道实现该接口(interface)的类。我希望CClass查找ISomething的所有实现,实例化它的一个实例并执行该方法。有人知道如何使用C#3.5做到这一点吗? 最佳答案 工作代码示例:varinstances=fromtinAssembly.GetExecutingAssembly().GetTypes()wheret.GetInterfaces().Cont

c# - 如何找到实现给定接口(interface)的所有类?

在给定的命名空间下,我有一组实现接口(interface)的类。我们称它为ISomething。我有另一个类(我们称它为CClass),它知道ISomething但不知道实现该接口(interface)的类。我希望CClass查找ISomething的所有实现,实例化它的一个实例并执行该方法。有人知道如何使用C#3.5做到这一点吗? 最佳答案 工作代码示例:varinstances=fromtinAssembly.GetExecutingAssembly().GetTypes()wheret.GetInterfaces().Cont