Re: ??? Dynamically loading a generic type ???

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance





"Amil Hanish" <amilhanish@xxxxxxxxxxx> wrote in message news:#m5H14QXHHA.1016@xxxxxxxxxxxxxxxxxxxxxxx
I have a generic type that I need in another app domain? How can I do this?

I was trying to call CreateInstanceAndUnwrap, but it fails since I can't figure out how to tell it which T (type) to use when creating? Is there some other way to create a generic type in an app domain?


Just examine an instance of the Type you are trying to create to get its assembly name and type name:

EG

public class Program
{

class Foo<T> : MarshalByRefObject
{
public T t;
public string MyDomain
{
get { return AppDomain.CurrentDomain.FriendlyName; }
}
}

class Bar
{
}


public static void Main(string[] args)
{
try
{
AppDomain d = AppDomain.CreateDomain("new domain");
Type t = typeof(Foo<Bar>);

Console.WriteLine(t.FullName);
Foo<Bar> remote = (Foo<Bar>)d.CreateInstanceAndUnwrap(t.Assembly.FullName, t.FullName);
Console.WriteLine(remote.MyDomain);

}
catch (Exception ex)
{
Console.WriteLine(ex);
}
Console.WriteLine("Hit any key to exit");
Console.ReadKey();
}
}

David

.