>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
Amil Hanish - 02 Mar 2007 23:56 GMT
Perfect! Many thanks!
Amil
>>I have a generic type that I need in another app domain? How can I do
>>this?
[quoted text clipped - 47 lines]
>
> David