上週我和朋友討論瞭如何使用DLL(.net DLL)中的類。我有一個.net DLL,我需要在我的exe中使用它。在EXE中使用DLL
通常,
- 我添加DLL在我的解決方案,在我的Exe
- 基準的DLL創建的類的對象(它是在我的DLL)
- 開始調用方法/功能在剛剛創建的對象的類中。
但最後決定,我們應該使用Reflection而不是我們正在做的方式。原因是鬆散耦合。可以更改DLL中的功能並編譯它。在這種情況下,您不需要編譯客戶端代碼。
我對此背景有疑問。
假設,我有一個非常簡單的應用程序(說控制檯應用程序),我有兩個類都寫作做不同的工作。
class Program
{
static void Main()
{
//How do you create a object of the class A.
}
}
class A
{
string A = "I am from A";
public B b;
public A
{
b = new B();
}
}
class B
{
string B = "I am from B";
public B
{
}
public void Print()
{
Console.WriteLine(B);
}
}
你如何創建一個類的對象時,所有三個類別相同的exe文件,以及如何創建同一個對象時,A類和不同的DLL B類。
第二部分問題的一個答案是使用界面和使用反射。
反射是否真的需要它,或者它是一種編程標準。
什麼是創建類的對象的最佳做法。
接口是實現鬆耦合的正確方法。我不知道如何使用反射來實現鬆耦合,但使用反射任何好的模式/方法將不會涉及。 –
一般說,你不需要重新編譯/部署在C#中的.exe *不*使用反射,除非你改變方法名稱/簽名/等實際上在.exe中使用,在這種情況下,你將不得不在任何情況下重新編譯。使用沒有反射的接口,你應該沒問題。 –
是的,請不要嘗試使用反射來複制類庫的功能...... –