试图创建可在应用程序域之间传递的类作为参数c#
||
那就是我想要做的:
我创建了我想成为将在两个应用程序域之间传递的参数的类。在文件ClassLibrary1.dll中:
[Serializable]
public class MyClass
{
public string mystr = \"NotWorking!\";
public MyClass(string _mystr)
{
mystr = _mystr;
}
public override string ToString()
{
return mystr;
}
}
然后,我创建了另一个类,该类将是将MyClass用作otherdomainclass.dll中的参数的类:
public class OtherDomainClass : MarshalByRefObject, IOtherDomainClass
{
#region Implementation of IOtherDomainClass
private MyClass my;
public MyClass getParam()
{
return my;
}
public void setParam(MyClass _param)
{
my = _param;
}
#endregion
}
并在iotherdomainclass.dll中为该类定义了接口:
public interface IOtherDomainClass
{
MyClass getParam();
void setParam(MyClass _param);
}
现在我正在尝试运行以下测试:
[TestMethod()]
public void PassMyclassBetweenDomains()
{
domain = AppDomain.CreateDomain(appDomainName);
otherClass = domain.CreateInstanceFromAndUnwrap(location, \"OtherDomain.OtherDomainClass\") as IOtherDomainClass;
Assert.IsNotNull(otherClass);
otherClass.setParam(new MyClass(\"Working!\"));
string sparam = otherClass.getParam().ToString();
Assert.AreEqual(sparam, \"Working!\");
AppDomain.Unload(domain);
}
测试失败,并出现以下错误:
Test method SerizalizableDataTypesTest.ParamCollectionTest.PassMyclassBetweenDomains threw exception
System.Runtime.Serialization.SerializationException: Unable to find assembly \'ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\'.
抱歉,长话短说,我不确定我做错了什么。或者,如果所有代码从一开始都是错误的,请您帮我重新创建它。
非常感谢你!!!
没有找到相关结果
已邀请:
1 个回复
屑凉赦