Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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语言的组成/授权#_C#_Delegation - Fatal编程技术网

C# C语言的组成/授权#

C# C语言的组成/授权#,c#,delegation,C#,Delegation,好的,我需要使用一些第三方库,生成的代码很难进行单元测试,因为这些类没有实现接口(即,我不能将我的代码从它对它们的依赖中分离出来,而这些依赖反过来又依赖于数据库,谁知道还有什么) 我的解决方案-将第三方类包装在我自己的类中,这些类具有相同的接口并包含第三方类的实例。到目前为止,这很容易 问题:有没有办法从现有(第三方)类中自动提取这些接口?如果我手动编写的话,我似乎会编写很多锅炉板代码。我不知道有哪种工具能够做到这一点。但是,我会这样做。使用反射器并对第三方组件进行逆向工程。将代码“粉碎”为方法

好的,我需要使用一些第三方库,生成的代码很难进行单元测试,因为这些类没有实现接口(即,我不能将我的代码从它对它们的依赖中分离出来,而这些依赖反过来又依赖于数据库,谁知道还有什么)

我的解决方案-将第三方类包装在我自己的类中,这些类具有相同的接口并包含第三方类的实例。到目前为止,这很容易


问题:有没有办法从现有(第三方)类中自动提取这些接口?如果我手动编写的话,我似乎会编写很多锅炉板代码。

我不知道有哪种工具能够做到这一点。但是,我会这样做。使用反射器并对第三方组件进行逆向工程。将代码“粉碎”为方法签名。然后,通过少量的调整,您就有了一个界面。不完全是“无样板”,但它确实消除了许多死记硬背的工作。

看看这个问题。。。