Если нет никакого контекста Сервера (т.е. Ваше выполнение офлайн), можно использовать HttpUtility. HtmlDecode.
Проблема в вашем коде состоит в том, что вы никогда не передаете объект за границу; таким образом, у вас есть два экземпляра ada
, по одному в каждом домене приложения (инициализатор статического поля работает в обоих доменах приложений). Вам нужно будет передать экземпляр за границу, чтобы задействовала магию MarshalByRefObject
.
Например:
using System;
class MyBoundaryObject : MarshalByRefObject {
public void SomeMethod(AppDomainArgs ada) {
Console.WriteLine(AppDomain.CurrentDomain.FriendlyName + "; executing");
ada.myString = "working!";
}
}
public class AppDomainArgs : MarshalByRefObject {
public string myString { get; set; }
}
static class Program {
static void Main() {
AppDomain domain = AppDomain.CreateDomain("Domain666");
MyBoundaryObject boundary = (MyBoundaryObject)
domain.CreateInstanceAndUnwrap(
typeof(MyBoundaryObject).Assembly.FullName,
typeof(MyBoundaryObject).FullName);
AppDomainArgs ada = new AppDomainArgs();
ada.myString = "abc";
Console.WriteLine("Before: " + ada.myString);
boundary.SomeMethod(ada);
Console.WriteLine("After: " + ada.myString);
Console.ReadKey();
AppDomain.Unload(domain);
}
}