To load you'll want to look at the System.Reflection.Assembly.LoadFrom
method in the reflection classes. To unload though you'll need to learn
about creating Application Domains. When you load a dll, you can't
unload it until the application domain that hosts it is unloaded (at
least in my experience). If you spawn a new application domain then load
your dll, the dll can be unloaded when the application domain is
unloaded. Specifically look at the System.AppDomain.CreateAppDomain and
System.AppDomain.Unload methods. Hope that will get you started down the
right path.
Have A Better One!
John M Deal, MCP
Necessity Software
> How do i dynamicaly load and unload a C# dll at runtime
Daniel - 30 Nov 2004 00:22 GMT
how do i access methods when the .net assembly was loaded with late biding?
class Class1
{
public static void Main()
{
System.Reflection.Assembly SampleAssembly;
SampleAssembly =
System.Reflection.Assembly.LoadFrom("C:\\SimpleSolutions\\asmload\\asmtoload
\\bin\\Debug\\asmtoload.dll");
System.Type[] Types = SampleAssembly.GetTypes();
foreach (System.Type oType in Types)
{
System.Console.WriteLine(oType.Name.ToString());
string strName = oType.Name.ToString();
System.Object pObj = SampleAssembly.CreateInstance("asmtoload" + "." +
strName);
//System.Console.WriteLine(pObj.IOCTL("foo")); THIS IS A BUILD ERROR
BECAUSE IOCTL method is not accessible, how to access method if type info of
dynamicaly loaded dll?
System.Threading.Thread.Sleep(5000);
}
}
}
> To load you'll want to look at the System.Reflection.Assembly.LoadFrom
> method in the reflection classes. To unload though you'll need to learn
[quoted text clipped - 12 lines]
>
> > How do i dynamicaly load and unload a C# dll at runtime