У меня есть код, использующий стороннюю библиотеку, которую я не могу обойти. Эта библиотека предоставляет некоторые вспомогательные функции, которые мне нужны. В настоящее время мой код настроен так:
static Engine engine = new Engine();
static void Main(string[] args)
{
engine.Execute(MyCode);
}
private static void MyCode()
{
// my code goes here
}
Вот моя проблема: мне нужно создать экземпляр кода, прежде чем MyCode
сможет его использовать, потому что этот экземпляр должен попасть в базу данных и занимает больше времени, чем порог, разрешенный Engine
. Я не могу использовать статическую переменную, потому что потребуется несколько экземпляров. Что в основном означает, что я хочу что-то вроде этого:
static Engine engine = new Engine();
static void Main(string[] args)
{
MyClass c = new MyClass();
c.Initialize(); // This is the db call
engine.Execute(MyCode); // This line is the problem
}
private static void MyCode(MyClass c)
{
// my code goes here
c.DoStuff();
}
Моя проблема в том, что мне нужно создать перегруженный метод, который принимает параметр. Однако метод Execute
в сторонней библиотеке не позволяет мне этого делать. Есть ли какой-то C # синтаксический способ, которым я могу сделать это, что мне не хватает?