[Mono-list] Assembly.Load doubts

Mario Sopena mario.sopena at gmail.com
Thu Jul 28 15:06:11 EDT 2005


I have the following scenario:

------  TestBase.cs -----------
public interface TestBase {
	void Print();
}


------    Test.cs    -------------------
public class Test : TestBase 
{
	public Test () 	{}
	public void Print() 
	{
		System.Console.WriteLine ("Hola");
	}
}

------- TestClass.cs --------------------
using System;
using System.Reflection;
public class TestClass 
{
	
	public static void Main (string[] args) 
	{
		new TestClass();
	}

	public TestClass () 
	{
		AssemblyName asna = AssemblyName.GetAssemblyName ("Test.dll");
		Assembly asm = Assembly.LoadWithPartialName (asna.FullName);
		Type t = asm.GetType("Test", true);
		object obj = Activator.CreateInstance (t);
		TestBase tb = (TestBase) obj;  //InvalidCastException
		tb.Print();
	}
}



I compile like this: 
mcs -target:library Test.cs TestBase.cs
mcs -debug TestClass.cs TestBase.cs

So I end up with a Test.dll and TestClass.exe. Now, executing the
TestClass.exe throws an InvalidCastException in the line with the
comment.

I think the problem is that i don't load the dll in the correct
context, but I've tried other possibilities and I couldn't make it
work. Two days ago I didn't know was an AppDomain was, so there is the
possibility that I'm doing something really stupid.

Any help pleaase?


More information about the Mono-list mailing list