C# 允许我是app domain的新手,如何使用app domain运行构造函数
我正在尝试创建一个新的应用程序域来转换文档,但我不太熟悉它的语法,这就是我正在尝试转换文档的内容C# 允许我是app domain的新手,如何使用app domain运行构造函数,c#,appdomain,C#,Appdomain,我正在尝试创建一个新的应用程序域来转换文档,但我不太熟悉它的语法,这就是我正在尝试转换文档的内容 Aspose.Words.Document doc = new Aspose.Words.Document(inputFileName); doc.Save(Path.ChangeExtension(inputFileName, ".pdf")); 我想在新的应用程序域中运行以上代码,所以我正在尝试这个 AppDomain domain = AppDomain.CreateDomain("N
Aspose.Words.Document doc = new Aspose.Words.Document(inputFileName);
doc.Save(Path.ChangeExtension(inputFileName, ".pdf"));
我想在新的应用程序域中运行以上代码,所以我正在尝试这个
AppDomain domain = AppDomain.CreateDomain("New domain name");
string pathToDll = @"C:\Users\user1\Desktop\Aspose.Words.dll";
Type t = typeof(Aspose.Words.Document);
Aspose.Words.Document myObject = (Aspose.Words.Document)domain.CreateInstanceFromAndUnwrap(pathToDll, t.FullName);
但是我如何才能像我在第一个代码spinet中所做的那样创建一个构造函数…您可以使用一个重载的定义来接受额外的参数,一个对象数组来传递给其中的构造函数。然后,您的代码可能如下所示:
AppDomain domain = AppDomain.CreateDomain("New domain name");
string pathToDll = @"C:\Users\user1\Desktop\Aspose.Words.dll";
Type t = typeof(Aspose.Words.Document);
Object[] constructorArgs = new Object[1];
constructorArgs[0] = inputFileName;
Aspose.Words.Document myObject = (Aspose.Words.Document)domain.CreateInstanceFromAndUnwrap(
pathToDll,
t.FullName,
false, //ignoreCase
0, //bindingAttr
null, //binder, use Default
constructorArgs, //the constructor parameters
null, //culture, use culture of current thread
null); //activationAttributes
谢谢,+1,它可能与答案无关,但这是我得到的错误..说明:在程序集中键入'Aspose.Words.Document'Aspose.Words,Version=14.10.0.0,Culture=neutral,PublicKeyToken=716fcc553a201e56'未标记为可序列化。我也不是AppDomains方面的专家,但是,如果您想在自己的AppDomain中使用来自不同AppDomain的类,则必须将其标记为可序列化。另一个选项是从MarshallByRefObject中对类进行子类化,并在其自己的AppDomain中使用它。查看此SO线程:允许我是应用程序域的新手-这不属于标题。