Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#如何使用多个接口实现_C#_Dynamic_Interface_Instantiation - Fatal编程技术网

C#如何使用多个接口实现

C#如何使用多个接口实现,c#,dynamic,interface,instantiation,C#,Dynamic,Interface,Instantiation,我有两个独立的接口实现,根据我在数据库中存储的设置,我想使用其中一个(创建特定impl类的对象和执行方法) 所以 如果设置=1,则使用接口实现1 否则使用接口实现2 最好的方法是什么?是否可以基于变量值动态实例化正确接口实现的对象?您可以使用。您可以使用。是的,您需要查看 本质上,您将实际对象的创建委托给另一个对象(称为工厂)。当要求提供对象的实例时,工厂将查看数据库值并创建相应的实例。是的,您需要查看数据库值 本质上,您将实际对象的创建委托给另一个对象(称为工厂)。当要求提供对象的实例时,工厂

我有两个独立的接口实现,根据我在数据库中存储的设置,我想使用其中一个(创建特定impl类的对象和执行方法)

所以

如果设置=1,则使用接口实现1 否则使用接口实现2


最好的方法是什么?是否可以基于变量值动态实例化正确接口实现的对象?

您可以使用。

您可以使用。

是的,您需要查看


本质上,您将实际对象的创建委托给另一个对象(称为工厂)。当要求提供对象的实例时,工厂将查看数据库值并创建相应的实例。

是的,您需要查看数据库值


本质上,您将实际对象的创建委托给另一个对象(称为工厂)。当要求提供对象的实例时,工厂将查看数据库值并创建适当的实例。

我们需要更多的问题背景;看起来你试图找到一个解决错误问题的方法。这两个接口将做什么?它们将被用来做什么?为什么需要使用两个独立的接口?@thecoop这对我来说似乎是正常情况!我们需要更多关于这个问题的背景知识;看起来你试图找到一个解决错误问题的方法。这两个接口将做什么?它们将被用来做什么?为什么需要使用两个独立的接口?@thecoop这对我来说似乎是正常情况!它隐藏了if-else或开关,但在初始化时这是可以接受的。对于以后的一切,您应该依赖于多态性。它隐藏了if-else或开关,但这在初始化时是可以接受的。对于以后的一切,您应该依赖多态性。