文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于类型解析的一些辅助方法

关于类型解析的一些辅助方法

时间:2010-09-17  来源:marr

类型解解析,通常是通过程序集和类名,也即是通常的反射,通过反射,我们可以在程序运行的时候,获取类型,属性....,首先,我们定义一个HashTable用来保存解析的数据

 

private static Hashtable _assemblyCaches = null;

这段代码有两个参数,一个是程序集名称,一个是类名,

 

 

代码
 /// <summary>
/// 从程序集中获得类型
/// </summary>
/// <param name="assemblyString">程序集</param>
/// <param name="classString">类名称</param>
/// <returns></returns>
public static Type ResolveType(string assemblyString, string classString)
{
if (_assemblyCaches == null)
_assemblyCaches
= new Hashtable();
if (!string.IsNullOrEmpty(assemblyString) && !string.IsNullOrEmpty(classString))
{
string[] s = new string[2] {classString,assemblyString};
Assembly assem
= (Assembly)_assemblyCaches[s[1].Trim()];
if (assem == null)
{
assem
= Assembly.Load(s[1].Trim());
if (!_assemblyCaches.Contains(s[1].Trim()))
{
lock (_assemblyCaches.SyncRoot)
{
_assemblyCaches.Add(s[
1].Trim(), assem);
}
}
}
return assem.GetType(s[0]);
}
return null;
}

上面解析的方法已经写好了,便可以通过这个方法实例化类,采用了List<T>,呵呵这是必须的,

 

代码
 public static T CreateInstance<T>(string assemblyString, string classString)
{
Type type
= ResolveType(assemblyString, classString);
T instance
= (T)Activator.CreateInstance(type);

return instance;
}

 

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载