На прошлой неделе у меня была дискуссия с друзьями о том, как использовать классы в DLL (.net DLL). У меня есть .NET DLL, которая мне нужна, потребляйте ее в моем Exe.
Обычно
- Я добавляю DLL в свое решение и ссылаюсь на DLL в моем Exe
- Создать объект класса (который находится в моей DLL)
- Начните вызывать методы / функции в классе из только что созданного объекта.
Но, наконец, решил, что мы должны использовать Отражение не так, как мы. Причина - слабая связь. Можно изменить функциональность в 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);
}
}
Как создать объект класса A, когда все три класса одинаковы, и как создать один и тот же объект, когда класс A и класс B находятся в разных библиотеках DLL.
один ответ для второй части вопроса - использовать интерфейс и использовать отражение.
Является ли отражение действительно необходимым, или это своего рода стандарт программирования.
Какая лучшая практика для создания объекта класса.