C# C在项目之间共享对象
我有一个2个项目的解决方案 项目A有以下内容 一个-引用第三方DLL,它有一个名为Response的类 B-使用上述DLL并从名为GetResponse的方法返回响应对象的类 现在项目B调用项目A中的类,如下所示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添加第三方引用就可以执行此操
Response r = ProjectA.Class.GetResponse();
这将返回一个错误,因为我的项目B中没有第三方引用
我不希望将我的第三方DLL发送到所有其他项目,只是为了从第三方DLL获取对响应对象的引用
那么,不必向Project B添加第三方引用就可以执行此操作吗?如果您的项目使用的是第三方DLL中定义的对象,那么也必须直接引用它 如果希望避免这种情况,可以将响应对象包装在项目B中定义的自定义对象中,创建方法和属性以公开响应类上的任何必要内容。请记住,您不能直接公开响应类,否则直接引用也将是必需的
当然,即使使用包装,在部署最终DLL时,仍然需要第三方DLL,它不需要直接引用。显然,您试图在此处使用响应类,因此必须定义它。您需要引用。是的,我可以引用它……但无论如何,要将响应对象映射到项目B,而不必引用整个DLL?在较新版本的VS/.NET中,您可以使用共享项目,它将共享代码编译到每个项目中。这可能适合您的需要,但可能会带来类型转换/转换问题。More info@此外,如果B调用A,则其已隐式引用A引用的程序集。