如何将dll的方法扩展到具有相同名称的类?

时间:2016-04-23 19:10:01

标签: c# dll

假设出现这种情况:

Dll具有命名空间Users和类User
现在在我自己的程序中,我有一个不同的命名空间Test但是我有相同的类名dll User
通常为了避免这种情况我使用别名,所以:

using UserDLL = Users.User;

namespace Test
{
    class User : Tenant
    { 
        public void doSomething()
        {
            UserDLL.AddUser(); //call dll method
        }
    }
}

但有一种方法可以直接在类中包含dll方法吗?所以我只能打电话给User.AddUser()

更新

一个可能的解决方案是从dll类继承,但是如果我已经有一个类继承了会发生什么?例如User继承Tenant

1 个答案:

答案 0 :(得分:2)

继承自Users.User(推荐)或考虑为其创建扩展方法,而不是使用单独的类。

继承方法:

 namespace Test {
  public class User : Users.User
  {
         public void DoSomething(){}
  }
 }

...扩展方法:

 public static class UserExtensions{
       public static void DoSomething(this Users.User user)
        {
             var val = user.AddUser();
        }
 }


 //then you can do something like this:
 var u = new Users.User();
 u.DoSomething();