zoukankan      html  css  js  c++  java
  • 一个使用泛型的工厂类

    Provider提供程序模型中,常常使用反射工厂来获得配置的实例,虽然代码比较简单,但是却也必不可少。

    这里用添加了泛型这一特性,虽然性能不见得有什么提高(用不用泛型都会有一个类型转换),但是用了就好像给人一种性能提高了的感觉 ^_^ .

    using System.Reflection;

    namespace Helper.Reflection
    {
        
    /// <summary>
        
    /// 类工厂
        
    /// </summary>

        static class ClassFactory
        
    {
            
    /// <summary>
            
    /// 创建类实例的方法,程序集名可以与类命名空间不同
            
    /// </summary>
            
    /// <typeparam name="T">类型</typeparam>
            
    /// <param name="assemblyName">程序集名</param>
            
    /// <param name="className">完全类名</param>
            
    /// <returns>类的实例</returns>

            public static T CreateInstance<T>(string assemblyName, string className)
            
    {
                
    return (T)Assembly.Load(assemblyName).CreateInstance(className);
            }

            
    /// <summary>
            
    /// 创建类实例的方法,程序集名即为类命名空间
            
    /// </summary>
            
    /// <typeparam name="T">类型</typeparam>
            
    /// <param name="className">完全类名</param>
            
    /// <returns>类的实例</returns>

            public static T CreateInstance<T>(string className)
            
    {
                
    string assemblyName = className.Substring(0, className.LastIndexOf('.'));
                
    return (T)Assembly.Load(assemblyName).CreateInstance(className);
            }

        }

    }
  • 相关阅读:
    Hibernate
    Redis的学习
    Redis的人门以及使用
    Win32 配置文件用法
    Using virtual lists
    windows log
    Win查询注册表获取CPU与内存参数
    MFC 多线程及线程同步
    使用Custom Draw优雅的实现ListCtrl的重绘
    MFC工具栏设计
  • 原文地址:https://www.cnblogs.com/wenrenhua08/p/3993643.html
Copyright © 2011-2022 走看看