Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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#_.net - Fatal编程技术网

C# C在项目之间共享对象

C# C在项目之间共享对象,c#,.net,C#,.net,我有一个2个项目的解决方案 项目A有以下内容 一个-引用第三方DLL,它有一个名为Response的类 B-使用上述DLL并从名为GetResponse的方法返回响应对象的类 现在项目B调用项目A中的类,如下所示 Response r = ProjectA.Class.GetResponse(); 这将返回一个错误,因为我的项目B中没有第三方引用 我不希望将我的第三方DLL发送到所有其他项目,只是为了从第三方DLL获取对响应对象的引用 那么,不必向Project B添加第三方引用就可以执行此操

我有一个2个项目的解决方案

项目A有以下内容 一个-引用第三方DLL,它有一个名为Response的类 B-使用上述DLL并从名为GetResponse的方法返回响应对象的类

现在项目B调用项目A中的类,如下所示

Response r = ProjectA.Class.GetResponse();
这将返回一个错误,因为我的项目B中没有第三方引用

我不希望将我的第三方DLL发送到所有其他项目,只是为了从第三方DLL获取对响应对象的引用


那么,不必向Project B添加第三方引用就可以执行此操作吗?

如果您的项目使用的是第三方DLL中定义的对象,那么也必须直接引用它

如果希望避免这种情况,可以将响应对象包装在项目B中定义的自定义对象中,创建方法和属性以公开响应类上的任何必要内容。请记住,您不能直接公开响应类,否则直接引用也将是必需的


当然,即使使用包装,在部署最终DLL时,仍然需要第三方DLL,它不需要直接引用。

显然,您试图在此处使用响应类,因此必须定义它。您需要引用。是的,我可以引用它……但无论如何,要将响应对象映射到项目B,而不必引用整个DLL?在较新版本的VS/.NET中,您可以使用共享项目,它将共享代码编译到每个项目中。这可能适合您的需要,但可能会带来类型转换/转换问题。More info@此外,如果B调用A,则其已隐式引用A引用的程序集。