builderfactory.cs

来自「通过数据库结构自动 生成三层结构代码,相当不错的一款软件」· CS 代码 · 共 133 行

CS
133
字号
namespace LTP.CodeBuild
{
    using LTP.IBuilder;
    using LTP.Utility;
    using Maticsoft.AddInManager;
    using System;
    using System.Reflection;

    public class BuilderFactory
    {
        private static Cache cache = new Cache();

        public static IBuilderBLL CreateBLLObj(string AssemblyGuid)
        {
            try
            {
                if (AssemblyGuid == "")
                {
                    return null;
                }
                AddIn @in = new AddIn(AssemblyGuid);
                string assembly = @in.Assembly;
                string classname = @in.Classname;
                return (IBuilderBLL) CreateObject(assembly, classname);
            }
            catch (SystemException exception)
            {
                string message = exception.Message;
                return null;
            }
        }

        public static IBuilderDAL CreateDALObj(string AssemblyGuid)
        {
            try
            {
                if (AssemblyGuid == "")
                {
                    return null;
                }
                AddIn @in = new AddIn(AssemblyGuid);
                string assembly = @in.Assembly;
                string classname = @in.Classname;
                return (IBuilderDAL) CreateObject(assembly, classname);
            }
            catch (SystemException exception)
            {
                string message = exception.Message;
                return null;
            }
        }

        public static IBuilderDALTran CreateDALTranObj(string AssemblyGuid)
        {
            try
            {
                if (AssemblyGuid == "")
                {
                    return null;
                }
                AddIn @in = new AddIn(AssemblyGuid);
                string assembly = @in.Assembly;
                string classname = @in.Classname;
                return (IBuilderDALTran) CreateObject(assembly, classname);
            }
            catch (SystemException exception)
            {
                string message = exception.Message;
                return null;
            }
        }

        public static IBuilderModel CreateModelObj(string AssemblyGuid)
        {
            try
            {
                if (AssemblyGuid == "")
                {
                    return null;
                }
                AddIn @in = new AddIn(AssemblyGuid);
                string assembly = @in.Assembly;
                string classname = @in.Classname;
                return (IBuilderModel) CreateObject(assembly, classname);
            }
            catch (SystemException exception)
            {
                string message = exception.Message;
                return null;
            }
        }

        private static object CreateObject(string path, string TypeName)
        {
            object obj2 = cache.GetObject(TypeName);
            if (obj2 == null)
            {
                try
                {
                    obj2 = Assembly.Load(path).CreateInstance(TypeName);
                    cache.SaveCache(TypeName, obj2);
                }
                catch (Exception exception)
                {
                    string message = exception.Message;
                }
            }
            return obj2;
        }

        public static IBuilderWeb CreateWebObj(string AssemblyGuid)
        {
            try
            {
                if (AssemblyGuid == "")
                {
                    return null;
                }
                AddIn @in = new AddIn(AssemblyGuid);
                string assembly = @in.Assembly;
                string classname = @in.Classname;
                return (IBuilderWeb) CreateObject(assembly, classname);
            }
            catch (SystemException exception)
            {
                string message = exception.Message;
                return null;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?