Ну коль все так плохо тогда лови
| Код | //Our Console Application
class Example { public static void Main() { string assemblyName = "ClassLibrary1";
AppDomainSetup mySetupInfo = new AppDomainSetup();
//dll лежит в папке приложения (не проверял с другими путями (няма часу играться, сори)) mySetupInfo.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory; mySetupInfo.ApplicationName = assemblyName; mySetupInfo.LoaderOptimization = LoaderOptimization.SingleDomain;
AppDomain myDomain = AppDomain.CreateDomain(assemblyName, null, mySetupInfo);
Object obj = myDomain.CreateInstanceAndUnwrap(assemblyName, "Worker", false, BindingFlags.Public | BindingFlags.CreateInstance | BindingFlags.Instance, null, null, null, null, null);
Type objType = obj.GetType();
objType.InvokeMember("PrintDomain", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod, null, obj, new object[] {});
object result = objType.InvokeMember("BookmakerName", BindingFlags.GetProperty, null, null, new object[] { });
Console.WriteLine(result);
Console.ReadKey(); } }
|
| Код | //Our Dll with assembly name "ClassLibrary1" //на счет Serializable не помню где он надо а где нет но вроде он обязателен когда маршалин по значению идет //абявазкова указываем маршалинг [Serializable] public class Worker : MarshalByRefObject { public void PrintDomain() { Console.WriteLine("Object is executing in AppDomain \"{0}\"", AppDomain.CurrentDomain.FriendlyName); }
public static string BookmakerName { get { return "Марафон"; } set { } } }
|
|