繁体   English   中英

如何将dll的方法扩展到同名的类?

[英]How to extend the methods of dll to a class with same name?

假设这种情况:

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

继承自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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM