2016-04-23 19 views
0

と仮定します。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()と呼ぶことができますか?

UPDATE

可能な解決策は、DLLのクラスから継承されるが、何happean私はすでにクラスを継承している場合は?たとえば、Userは、Tenantを継承します。

答えて

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(); 
+0

オムも、私はすでに継承クラスを持っている場合は?更新された例 – Dillinger

+1

その場合は、私の更新された答えに示されているように、拡張メソッドで行ってください。 – Colin

+0

別のクラスを作成する必要がありますか?なぜあなたは 'UserExtension'を呼び出したのですか? – Dillinger

関連する問題