Solved

Dynamically Loading and calling a .net object

Posted on 2003-10-30
5
370 Views
Last Modified: 2008-03-04
Is it possible to dynamically load then call a .net object. For instance, I have a exe and with this exe, I want to provide a folder that has a bunch of .net dlls with the same interface. I don't know the names of these dlls before the exe is compiled. I want to load all of the .net objects into memory and let the user select which ones to use.
0
Comment
Question by:skibud2
  • 2
  • 2
5 Comments
 
LVL 10

Assisted Solution

by:ptmcomp
ptmcomp earned 125 total points
ID: 9654174
Yes, I've also done this already.
Just use:
Type myType = Type.GetType("Full.Class.Name, AssemblyName");
Activator.CreateInstance(myType);
((IMyInterface)myType).MyMethod();
0
 

Author Comment

by:skibud2
ID: 9654682
doesn't that assume that it is already loaded in the GAC? I am trying to load it from the dll.
0
 
LVL 6

Accepted Solution

by:
etmendz earned 125 total points
ID: 9654996
Interesting project. ptmcomp's suggestion is close. You can read about the following and decide on what serves your purpose best:

Assembly.Load()
Assembly.LoadFrom()
Activator.CreateInstance()
Activator.CreateInstanceFrom()
Activator.CreateComInstanceFrom()

Have fun...
0
 

Author Comment

by:skibud2
ID: 9655198
I split it 125/125 because you both gave answers that helped me. Thanks guys!

-Mike
0
 
LVL 10

Expert Comment

by:ptmcomp
ID: 9656129
That's the code I used:
                  foreach (string typeName in typeNames)
                  {
                        Type type;
                        object dataSource;

                        type = Type.GetType(typeName);
                        if (type == null)
                        {
                              throw new ApplicationException(string.Format("Cannot load type '{0}'", typeName));
                        }
                        dataSource = Activator.CreateInstance(type);
                  }

This way there is no need to call Assembly.Load()
0

Featured Post

ScreenConnect 6.0 Free Trial

Check out the updates in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI that improves session organization and overall user experience. See the enhancements for yourself!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question