Is is possible to user Activator.CreateInstance() to instantiate a type given the Type.FullName and Assembly Name even though the assembly is not referenced by the executing assembly?

有帮助吗?

解决方案

Yes, first you have to load the assembly.

Suppose you have a "plugins" folder to look into:

            foreach (FileInfo f in new DirectoryInfo("c:\\plugins").GetFiles("*.dll"))
            {
                System.Reflection.Assembly.LoadFrom(f.FullName);
            }

Now assemblies are loaded and you can create the type using Activator.CreateInstance.

其他提示

Yup. That is the beauty of Reflection. You can load the assembly by knowing it's name and then you can create a type that is declared within that assembly.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top