惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
D
Docker
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
美团技术团队
V
V2EX
Last Week in AI
Last Week in AI
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Microsoft Security Blog
Microsoft Security Blog
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
P
Proofpoint News Feed
B
Blog RSS Feed
博客园_首页
B
Blog
博客园 - 叶小钗
I
InfoQ
WordPress大学
WordPress大学
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
The Register - Security
The Register - Security
MyScale Blog
MyScale Blog
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
Latest news
Latest news
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
C
CXSECURITY Database RSS Feed - CXSecurity.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
N
News and Events Feed by Topic
S
Secure Thoughts
The Hacker News
The Hacker News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News

博客园 - rudyshen

我的自信到哪里去啦 了解一下自己 最近失业啦 XtraGrid控件3——3种GridView的属性 C#命名规范,控件、数据类型、ADO.NET等 C# 跳转语句(break,continue,goto,return,throw) Winform中通过一个字符串定位到和字符串相等ID的控件(将字符串转换成相应的控件名称) - rudyshen - 博客园 用户控件笔记<原创> XML笔记<原创> 什么时候应当使用interface?什么时候应当使用abstract class? XML操作<转> 怎样从DevExpress 7.1.1升级到DevExpress 7.3.5<原创> 怎样从DevExpress 7.1.1升级到DevExpress 7.3.5<原创> (C#)利用反射动态调用类成员[转载] Net中的反射使用入门 DevExpress 7.3.5 笔记 C#控件属性 DevExpress 组件ToolBar、PopupMenu 使用有感 转 实现QQ中消息窗体闪烁功能 转
程序集的完全限定名与动态加载程序
rudyshen · 2008-04-05 · via 博客园 - rudyshen


Type T = typeof(KQV1.DataAccess.ConnectionBuilder);
            string s = T.Assembly.FullName.ToString();

            Assembly SampleAssembly = Assembly.Load(s);

            MessageBox.Show(s);

private Form LoadFromAsmbl(string strAsmblPath, string strClassName)
        
{
            
// 验证你的程序集是不是存在,你的总不能去引用一个不存在的东西吧?
            if(!File.Exists(strAsmblPath))
            
{
                MessageBox.Show(
"Assembly Not Exists!""Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                
return null;
            }


            
// 这里就加载程序集了,有很多种方式。去MSDN上看看吧
            Assembly asmbl = null;
            
try
            
{
                asmbl 
= Assembly.LoadFrom(strAsmblPath);
                
if (asmbl == null)
                
{
                    
throw new Exception("Fail to load assembly " + strAsmblPath);
                }

            }

            
catch(Exception e)
            
{
                MessageBox.Show(e.Message, 
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                
return null;
            }


            
// 实例化你要的对象,如果成功的话就没问题了*_*
            Form frmController = null;
            
try
            
{
                frmController 
= (Form)asmbl.CreateInstance(strClassName);
                
if (frmController == null)
                
{
                    
throw new Exception("Fail to create instance of " + strClassName);
                }

            }

            
catch(Exception e)
            
{
                MessageBox.Show(e.Message, 
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                
return null;
            }


            
// 到这里你就可以放心了*_*
            return frmController;
        }