Я использую сторонний dll для некоторых операций, экземпляр класса статичен и время от времени дает сбой.Я думал, есть ли способ восстановить класс с помощью Reflection.
Я использовал DotPeek для проверки библиотеки, и она выглядит примерно так:
public class C_SomeWrapper
{
private static C_SomeWrapper _instance;
public C_SomeWrapper()
{
InitStuff();
}
void InitStuff()
{
}
public void Destroy()
{
C_SomeWrapper._instance = (C_SomeWrapper)null;
}
public static C_SomeWrapper Instanse
{
get
{
if (C_SomeWrapper._instance == null)
C_SomeWrapper._instance = new C_SomeWrapper();
return C_SomeWrapper._instance;
}
}
}
Когда я ссылаюсь на него, яdo:
C_SomeWrapper _wrapper=C_SomeWrapper.Instanse
Поскольку происходит сбой, я хотел бы уничтожить () и создать экземпляр конструктора.Я думал, что возможно получить доступ к _instance
и сделать его нулевым через Reflection.Я хотел бы отметить, что просто Destroy () не работает, поэтому, вероятно, мне нужно вызвать конструктор и InitStuff (). Любые проблемы, если это возможно или нет, или, возможно, некоторые альтернативы
Спасибо