先週、友人と DLL (.net DLL) 内のクラスの使用について話し合いました。Exeでそれを消費する必要がある.net DLLがあります。
通常は、
- ソリューションに DLL を追加し、Exe で DLL を参照します。
- クラスのオブジェクトを作成します(これは私のDLLにあります)
- 作成したばかりのオブジェクトから、クラス内のメソッド /function の呼び出しを開始します。
しかし、最終的には、私たちが行っている方法ではなく、リフレクションを使用する必要があると判断しました。理由は疎結合です。DLL の機能を変更してコンパイルすることができます。このような状況では、クライアント コードをコンパイルする必要はありません。
この背景について質問があります。
非常に単純なアプリケーション (たとえば、コンソール アプリケーション) があり、2 つのクラスがあり、どちらも異なる作業を行うように記述されているとします。
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);
}
}
3 つのクラスすべてが同じ exe の場合にクラス A のオブジェクトを作成する方法と、クラス A とクラス B が異なる DLL にある場合に同じオブジェクトを作成する方法を教えてください。
質問の 2 番目の部分に対する 1 つの答えは、インターフェイスを使用し、リフレクションを使用することです。
リフレクションは本当に必要なのか、それとも一種のプログラミング標準なのか。
クラスのオブジェクトを作成するためのベスト プラクティスは何ですか。