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线程:允许我是应用程序域的新手-这不属于标题。