Я хочу знать, могу ли я сказать, в каком домене приложения был создан объект. Это для модульного теста, но также полезно для общего знания. У меня есть следующие фрагменты кода (это пример кода для иллюстрации).
public Foo Create()
{
AppDomainSetup appDomainSetup =
new AppDomainSet { ApplicationBase = @"z:\SomePath" }
AppDomain appDomain =
AppDomain.CreateDomain("DomainName", null, appDomainSetup);
return (Foo) appDomain.CreateInstanceAndUnwrap("MyAssembly", "MyClass");
}
Я тогда звоню
Foo myFoo = Create();
Что я хотел бы сделать, так это выяснить, какой метод AppDomain на myFoo будет вызываться, чтобы проверить, что метод Create действительно создал новый AppDomain. Я понимаю, что могу добавить метод на Foo, как
public class Foo
{
public string appDomainName
{
get { return AppDomain.CurrentDomain.FriendlyName; }
}
}
Это даст мне домен приложения, в котором работает Foo. Я не думаю, что это элегантное решение только для модульного теста. Было бы здорово, если бы кто-то мог помочь определить такой метод, как.
public string GetAppDomainNameWithDotNetWitchcraft(Foo myFoo)
{
// Insert voodoo here.
}
EDIT:
Спасибо за отзывы и комментарии. На вопрос, который я задал, был дан ответ, и комментарии помогли мне понять, в чем дело. Чего я действительно хотел добиться, так это проверить, что новый домен приложений создан.