C# 从另一个项目实现接口,该项目反过来引用第三方dll,并使用该dll中的类型

C# 从另一个项目实现接口,该项目反过来引用第三方dll,并使用该dll中的类型,c#,.net,visual-studio,dll,reference,C#,.net,Visual Studio,Dll,Reference,希望我的标题不会太混乱 我的解决方案中有几个项目,其中一个只包含接口MyProgram.Contract。我的插件需要实现这些接口 在MyProgram.Contract中,我为其中定义的某些类型引用了第三方DLL,例如称为DataValue 在MyProgram.MyPlugin中,我引用MyProgram.Contract并实现该接口,并且具有接口中定义的属性DataValue值{get;set;}。它可以编译,我可以从我的主应用程序中设置value-属性的值,并在插件的数据绑定视图中显示它

希望我的标题不会太混乱

我的解决方案中有几个项目,其中一个只包含接口
MyProgram.Contract
。我的插件需要实现这些接口

MyProgram.Contract
中,我为其中定义的某些类型引用了第三方DLL,例如称为
DataValue

MyProgram.MyPlugin
中,我引用
MyProgram.Contract
并实现该接口,并且具有接口中定义的属性
DataValue值{get;set;}
。它可以编译,我可以从我的主应用程序中设置
value
-属性的值,并在插件的数据绑定视图中显示它

但是,如果我尝试在插件的代码中使用
DataValue
,则会出现错误“类型AthirPartyLib.DataValue是在未引用的程序集中定义的。您必须添加对程序集AthirPartyLib.的引用”


这就是我想要避免的。我的愿望是,这些插件不需要其他参考,只需要参考
MyProgram.Contract
。有没有办法实现这一点,或者我需要在插件项目中添加与插件合同项目中相同的所有引用?

如果在接口定义中使用该DLL中的类型,那么这些接口的实现者也需要对该DLL的引用。没办法,真的