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

时间:2015-06-18 08:59:12

标签: c# 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将更像是一个扩展包,补充了其基础中缺少的功能。

有没有办法实现我想要的东西,或者我只是忽略了一些我不知道的限制?

1 个答案:

答案 0 :(得分:0)

您无法避免引用外部dll。明确地或隐含地,但你必须这样做。 如果这是你需要的,你可以创建自己的包装器。它有助于获得对依赖项的更多控制。

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