У меня есть приложение Winforms, которое разработано для интеграции с внешними программными пакетами.Это приложение считывает данные из этих пакетов и отправляет их на наш сервер, где пользователи входят в систему и используют наше приложение (приложение).
public abstract ClassToImplement
{
public abstract void DefinedMethod1();
public abstract void DefinedMethod2();
}
Когда мы разрабатывали приложение, оно должно было выполнить 95% работ по интеграции.оставшиеся 5% (класс реализации / App2) разрабатываются консультантом, который знаком со сторонним программным обеспечением.
public class Implemented : ClassToImplement{
public override void DefinedMethod1(...);
public override void DefinedMethod2(...);
}
«Приложение» выводит библиотеку классов, на которую затем ссылаются в реализации (приложение 2).В нашем дизайне мы создали абстрактный класс и определили методы.Идея заключалась в том, что консультант загрузит репозиторий для класса реализации и включит приложение в качестве справочного материала.Затем они напишут необходимый код для методов, которые они реализуют, скомпилируют и «вуаля!»
По очевидным причинам я не хочу делиться исходным проектом с внешними разработчиками, иначе я бы просто поделилсяполное решение и использовать одно приложение, и, хотя я знаю, что они могут многое увидеть со ссылкой на DLL, нам просто все проще контролировать.
Проблема заключается в приложении: основной алгоритм приложениянеобходимо создать экземпляр класса реализации, а затем программа будет работать идеально.
в Form1.cs приложения:
ClassToImplement impObj = new Implemented();
impObj.DefinedMethod1();
impObj.DefinedMethod2();
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу собрать приложение длявывести DLL без создания экземпляра класса.Я не могу создать экземпляр реализованного класса, поскольку у меня нет кода (пока).
Было бы здорово узнать, как добиться такой абстракции с зависимостью от (пока) неписаного кода, а также, каков технический термин для того, что я пытаюсь сделать?