zoukankan      html  css  js  c++  java
  • 接口编程,反射创建对象

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace ABC.Factory
    {
        public class BLLFactory
        {
            /// <summary>
            /// 创建实例
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="TypeName"></param>
            /// <returns></returns>
            public static T CreateInstant<T>(string TypeName)
            {
                T ret = default(T);
                try
                {
                    string dd = typeof(string).ToString();
                    string FullTypeName = "ABC.BLL." + TypeName;
                    Type type = Type.GetType(FullTypeName);
                    object obj = Activator.CreateInstance(type);
                    ret = (T)obj;
                    return ret;
                }
                catch
                {
                    return ret;
                }
            }

            /// <summary>
            /// 创建实例
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="TypeName"></param>
            /// <param name="Args">构造函数的参数</param>
            /// <returns></returns>
            public static T CreateInstant<T>(string TypeName,object[] Args)
            {
                T ret = default(T);
                try
                {
                    string dd = typeof(string).ToString();
                    string FullTypeName = "ABC.BLL." + TypeName;
                    Type type = Type.GetType(FullTypeName);
                    object obj = Activator.CreateInstance(type, Args);
                    ret = (T)obj;
                    return ret;
                }
                catch
                {
                    return ret;
                }
            }
        }
    }

             //接口编程,反射创建对象
             // 类库IBLL里定义有接口ICXbll ,
            // 类库 BLL里定义有类CXbll 。类FPCXbll实现 接口ICXbll
            // 为使得能够在只引用接口库IBLL而不引用类库 BLL的条件下创建类 BLL.CXbll


             IBLL.ICXbll cxBLL = Factory.BLLFactory.CreateInstant<IBLL.ICXbll>("CXbll");

            BLL.CXbll cxBLL = new ABC.BLL.CXbll();

  • 相关阅读:
    原来实现钉钉自动签到如此简单,每天准时上下班不是梦
    12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(下)
    12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(中)
    12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)
    python 学习笔记之手把手讲解如何使用原生的 urllib 发送网络请求
    发生线上故障后问责是不是第一要务
    软件工程是否可以直接应用于小团队
    阶段性正确的一点记录
    Java7新特性
    从server.xml看Tomcat容器的层次结构
  • 原文地址:https://www.cnblogs.com/panjun/p/2782979.html
Copyright © 2011-2022 走看看