C# 从另一个类访问函数/属性

C# 从另一个类访问函数/属性,c#,dll,C#,Dll,我在一个外部库中有很多类,这不是我正在开发的应用程序的一部分 由于我的应用程序使用它自己的库,该库也包含许多函数,因此我也希望使用外部库中的类/对象 比方说,我的外部dll中有一个类似这样的类: namespace Mydll.ExternalDLL { public class ObjectClass { public void DoSomething() { } } } 因为我不想将外部dll引用到我的应用程序,所以我需要从其他地方访问此函数 所以,

我在一个外部库中有很多类,这不是我正在开发的应用程序的一部分

由于我的应用程序使用它自己的库,该库也包含许多函数,因此我也希望使用外部库中的类/对象

比方说,我的外部dll中有一个类似这样的类:

namespace Mydll.ExternalDLL
{
    public class ObjectClass
    {
        public void DoSomething() { }
    }
}
因为我不想将外部dll引用到我的应用程序,所以我需要从其他地方访问此函数

所以,我的想法是在我的内部引用dll中执行类似的操作:

using Mydll.ExternalDLL;
namespace Mydll.InternalDLL
{
    public class ObjectClass : Mydll.ExternalDLL.ObjectClass
    {
        public void DoSomethingElse() { }
    }
}
正如您所看到的,在我的内部dll中没有名为DoSomething()的函数。 从内部dll调用ObjectClass时,我只想同时访问DoSomething()和DoSomethingElse(),而不需要进行一些奇怪的转换,这将导致将这两个库引用到我的应用程序。 内部dll更像是一个扩展包,从它的基础上补充缺少的函数


有什么方法可以实现我想要的,或者我只是对我缺少的一些限制视而不见?

您无法避免引用外部dll。无论是显式的,还是隐式的,但你必须这样做。 如果您需要的话,您可以创建自己的包装器。它有助于获得对依赖关系的更多控制

using Mydll.ExternalDLL;
public class ObjectClassWrapper
{
    ObjectClass _objectClass = new ObjectClass();
    public void DoSomething() 
    { 
       _objectClass.DoSomething();
    }
}

你为什么不能给你的图书馆添加一个参考资料?我可以。但是我不想,因为每个相关的函数/对象都应该只通过访问内部dll来处理。我忘了提到外部dll是由另一家公司编写的,我没有自己的源代码。因此,任何使用该库的人只需添加内部库,就可以访问两个库包含的任何内容。这就是我想要的。是的,把它作为最终的解决方案。但这将导致数周的时间编写“不需要的”代码,仅围绕外部库进行包装。外部库将被引用到内部dll。-编辑:刚刚更正了我的入门文章中的部分代码。我希望这会更清楚我想要什么。