C# - 価値問題によるマーシャル!
-
12-10-2019 - |
質問
ここに問題があります。リモートメカニズムを使用して新しいオブジェクトを作成するのに問題があります。
これが私のクラスです:
[Serializable]
internal class Empleado_MBV
{
public Empleado_MBV()
{
Id = 123456789;
Nombres = "NotEntry";
Apellidos = "NotEntry";
FechaNacimiento = DateTime.MinValue;
Direccion = "NotEntry";
Metapreferencias = "NotEntry";
}
private List<Multas> _multas;
internal List<Multas> Multas
{
get { return _multas; }
set { _multas = value; }
}
private int _id;
public int Id
{
get { return _id; }
set { _id = value; }
}
private string _nombres;
public string Nombres
{
get { return _nombres; }
set { _nombres = value; }
}
private string _apellidos;
public string Apellidos
{
get { return _apellidos; }
set { _apellidos = value; }
}
private DateTime _FecNac;
public DateTime FechaNacimiento
{
get { return _FecNac; }
set { _FecNac = value; }
}
private string _direccion;
public string Direccion
{
get { return _direccion; }
set { _direccion = value; }
}
private string _metapreferencias;
public string Metapreferencias
{
get { return _metapreferencias; }
set { _metapreferencias = value; }
}
public string _AppDomainHost
{
get { return AppDomain.CurrentDomain.FriendlyName.ToString(); }
}
}
しかし、別の「AppDomain」にオブジェクトを作成しようとすると、「Empleado」のプロパティ「_AppdomainHost」には、作成した「AppDomain」は表示されませんが、デフォルトで「AppDomain」を表示します。いくつかのアイデア?
AppDomain ad1 = AppDomain.CreateDomain("NewAppDomain");
//Crear new object in my new AD.
Empleado_MBV mbv_emp = (Empleado_MBV)ad1.CreateInstanceFromAndUnwrap("DEMO_MBV_MBR.exe", "DEMO_MBV_MBR.Empleado_MBV");
Console.WriteLine(AppDomain.CurrentDomain.FriendlyName.ToString());
Console.WriteLine("MBV : {0}",mbv_emp._AppDomainHost.ToString());
Console.ReadLine();
結果:
demo_mbv_mbr.vshost.exe
MBV:demo_mbv_mbr.vshost.exe
私が望む結果:
demo_mbv_mbr.vshost.exe
MBV:NewAppdomain
解決
保存する必要があります AppDomain
の Empleado_MBV
'のコンストラクター。
あなたが今していることは現在を表示することです AppDomain
その使用 Current
静的プロパティ。それは戻ります AppDomain
現在のコードが実行されている場合。
例:
private string _appDomainHost;
public string _AppDomainHost
{
get { return _appDomainHost; }
}
そしてコンストラクターで:
_appDomainHost = AppDomain.CurrentDomain.FriendlyName.ToString();
所属していません StackOverflow