How to transfer constructor parameters to AppDomain.CreateInstanceXXX?
.net, appdomain, c#, c#-4.0, remoting
Solution
You need to use this overload:
public object CreateInstanceAndUnwrap(
string assemblyName,
string typeName,
bool ignoreCase,
BindingFlags bindingAttr,
Binder binder,
object[] args, // <-- args go here
CultureInfo culture,
object[] activationAttributes
)
Problem
My class has no default parameterless constructor. It has such a constructor instead: ``` public Section(string fileName) {...} ``` I am to create an instance of my class inside of some `AppDomain`. If my class had a default constructor, then I would do it like this: ``` AppDomain domain = AppDomain.CreateDomain("ACAD-0001:409"); ISection section = (ISection)domain.CreateInstanceAndUnwrap( typeof(Section).Assembly.FullName, typeof(Section).FullName); ``` But there is no default constructor. How can I transfer the parameters of my constructor? I expected it to work something like this: ``` string cuiFile = "..."; ISection section = (ISection)domain.CreateInstanceAndUnwrap( typeof(Section).Assembly.FullName, typeof(Section).FullName, new object[] { cuiFile }); ``` But this doesn't work.