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

本文关键字:属性 函数 访问 另一个 | 更新日期: 2023-09-27 17:56:49

>我在外部库中有一堆类,这不是我正在处理的应用程序的一部分。

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

比方说,我的外部 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();
    }
}