У меня есть класс C # 2.0 со следующим кодом:
public class MyClass : MarshalByRefObject, IDisposable
{
private string _appName;
private AppDomain _app;
public MyClass(string appName)
{
_appName = appName;
_app = AppDomain.CreateDomain("NewDomain" + _appName);
_app.DoCallBack(new CrossAppDomainDelegate(CallBackMethod));
}
public void Dispose()
{
AppDomain.Unload(_app);
}
public static void CallBackMethod()
{
//some operations
}
}
Этот класс содержится в проекте библиотеки классов, а затем на него ссылаются из проекта веб-приложения.
Итак, на моей веб-странице я просто создаю экземпляр объекта, ожидая, что конструктор класса создаст этот новый AppDomain и выполнит указанные операции:
MyClass objMyClass = new MyClass("12022012213456");
Но я продолжаю получать эту ошибку:
Не удалось загрузить файл или сборку 'MyNamespace.MyClass, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей. Система не может найти указанный файл.
Но любопытно, что это исключение происходит в этой строке:
_app.DoCallBack(new CrossAppDomainDelegate(CallBackMethod));
И, как вы можете видеть, это происходит на MyClass , поэтому я не понимаю, как он мог сказать, что сборка не может быть найдена, если код уже выполняется ??? Я просто не понимаю
Кстати, я новичок в использовании AppDomain, возможно, я запутался с какой-то концепцией.