WEB开发网
开发学院软件开发C语言 为List添加排序的函数处理并列排名情况(上篇) 阅读

为List添加排序的函数处理并列排名情况(上篇)

 2009-05-21 08:30:02 来源:WEB开发网   
核心提示: 类型名称有了 还需要属性名称和返回值 .. 就可以动态创建类型类. . 属性和返回值用什么存放我首先想到的就是Dictionary<string,string> key 当属性名称 value当返回类型..创建类型还需要导入命名空间. 程序集 所有就就有了下面的这个方法///

类型名称有了 还需要属性名称和返回值 .. 就可以动态创建类型类. .  属性和返回值用什么存放

我首先想到的就是Dictionary<string,string> key 当属性名称  value当返回类型.. 

创建类型还需要导入命名空间.  程序集  所有就就有了下面的这个方法

/// <summary>
        /// 动态创建一个类型的实例
        /// </summary>
        /// <param name="dictionary">属性名称和属性的返回类型的键值对(属性名称为Key 返回类型为Value)</param>
        /// <param name="referencedAssemblies">需要加载的dll</param>
        /// <returns></returns>
        private static Type DynamicCreateType(Dictionary<string, string> dictionary, string[] referencedAssemblies)
        {
            //指定编译器的版本
            CSharpCodeProvider p = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } });
            //添加引用
            CompilerParameters param = new CompilerParameters(referencedAssemblies);
            //创建一个随机的类名
            string className = "__" + CreateEnglish(10);
            StringBuilder classCode = new StringBuilder();
            //可以考虑继承  需要主注意 引入 dll   命名空间
            classCode.Append("public class ");
            classCode.Append(className);
            classCode.Append("{");
            foreach (var item in dictionary)
            {
                classCode.Append("public " + item.Value + " " + item.Key + "{ get;set;}");
            }
            classCode.Append("}");
            //编译
            CompilerResults rel = p.CompileAssemblyFromSource(param, classCode.ToString());
            //获得这个类型并返回
            return rel.CompiledAssembly.GetType(className);
        }

Tags:List 添加 排序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接