通过字符串动态创建类对象

功能的需求是  不需要使用IOC 框架 来对创建指定对象。

.NET 中  要想动态的 创建对象   做耦合  好像只能做到 将类生成DLL 后  然后 加载DLL 接着创建对象。

JAVA 当个类文件 就可以运行。

希望做到  当读一个   .class  或者 .TXT 就可以  动态创建类对象  那多好啊!!! 还可以将 类文件 以字符串的形式写到 数据库中  通过数据库来 创建类对象。

然后就各种百度 谷歌 贴吧等  找有没相关的 解决方案    还好  找到了  。 不藏着 分享出来

代码很简单:

            CSharpCodeProvider p = new CSharpCodeProvider();
            CompilerParameters param = new CompilerParameters();

            string s = "public class AAA{ public string name;}";

            CompilerResults rel = p.CompileAssemblyFromSource(param, s);

            Type t = rel.CompiledAssembly.GetType("AAA");

            object o = t.GetConstructor(System.Type.EmptyTypes).Invoke(null);

            string sdc = t.GetField("name").GetValue(o).ToString();

            Console.WriteLine(t.GetField("name").GetValue(o).ToString());

希望 哪位大神 有更高效 的 方式  可以告诉本人一下哈 。。

时间: 2024-08-10 17:01:13

通过字符串动态创建类对象的相关文章

设计模式之工厂模式:模拟DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC动态创建类对象

该形式的工厂模式是我项目中用到的方法,属于很成熟的模版,读者可以直接拿来在自己项目中使用.个人感觉这种方法真正做到了"开放封闭"的原则,最大好处是用户产品类的设计完全不依赖于该模式的实现,比如提供必须的相关函数等.如果不理解工厂模式的话,请参考网上其它文章,本实现在理解上有一点小小的难度.好东西,大家慢慢享用,话不多说,先放代码! 首先是产品基类,它相当于一个接口,产品需要有什么动作就写在这里吧! #ifndef _CPRODUCTBASE_H_ #define _CPRODUCTBA

js动态创建类对象

1.定义函数,函数中定义类对象 f1=function(){ //定义类 function Pannel(name){ this.name = name; this.print = function(){ console.info(this.name); }; } //扩展类方法成员 Pannel.prototype.show = function(){ alert(this.name); } //返回类 return Pannel; } 2.执行函数,获得类 Pannel = f1(); 3.

silverlight根据json字符串动态创建实体类

1.接收json字符串: //用JsonValue转换json字符串是为了之后获得json字符串的每行数据和每一列的列名 JsonValue jv = JsonValue.Parse(json);     //JsonValue引用自System.Json 2.创建两个类:一个为创建实体类方法,一个为调用实体类方法,实现操作并返回数据: //创建实体方法类 public class DynamicTypeBuilder { TypeBuilder tb; /// <summary> /// 构

C++实现根据类名动态生成类对象

在开发后台服务的过程中,我们常常需要从数据库中取数据,并将数据缓存在本地中,另外,我们的服务还需要有更新数据的能力:包括定时的主动更新以及数据库数据更新时服务收到通知的被动更新. 之前在需要用到以上功能的时候,模仿着组内通用的数据Cache部分的代码来写,十分方便,基本上只需要自己写两个类:一个是取数据并缓存数据的类XXXData,一个是扇出数据的类XXXFetcher. 在需要使用数据的时候,通过: FetcherFactory::getFetcher<XXXFetcher>() 即可获取一

Qt Quick 组件和动态创建的对象具体的解释

在<Qt Quick 事件处理之信号与槽>一文中介绍自己定义信号时,举了一个简单的样例.定义了一个颜色选择组件,当用户在组建内点击鼠标时,该组件会发出一个携带颜色值的信号,当时我使用 Connections 对象连接到组件的 colorPicked 信号,改变文本的颜色. 当时用到的 Component . Loader 两个特性,一直没来得及介绍,可能非常多人都还在雾里看花呢. 这次呢.我们就来仔细致细地把他们讲清楚. 版权全部 foruok ,转载请注明出处:http://blog.csd

[菜鸟]C++创建类对象时(无参)后不加括号与加括号的区别

在不考虑用new动态创建对象的情况下,用最普通的 类名 对象名(参数); 的方法创建对象 先贴上最正常最普通的代码 #include<iostream> using namespace std; class C{ public: C(){ cout<<"Hello C++\n"; }; C(int m){ cout<<"I love C++\n"; }; private: int n; }; int main(){ C c; re

C++动态创建类的实例

写在前面:首先声明,C++实际上是不可以动态创建类的实例的. 下面简单做一个解释,所谓动态创建类的实例是指在程序运行过程中创建并使用一个“未知”的类.而“未知”是指在程序编译时并不知道有哪些类是需要动态创建的.对于C++这门语言来说,编译时不知道的类是不可以在运行时使用的.所以我说C++是不可以的. 不过C++可以做到另一件事情,基本可以满足大多数类似的需求. 我描述为通过类名称创建类的实例. 进入正题. 首先描述一下需求: 编写一个程序实现在程序运行过程中通过类名称(即字符串变量)创建该类的实

给js动态创建的对象绑定事件

1.使用原生JS动态为动态创建的对象绑定事件 1-1.创建一个function,用来兼容IE8以下浏览器添加事件 function addEvent(el, type, fn) {  if(el.addEventListener){ el.addEventListener(type,fn,false) }else if(el.attachEvent()){ el.attachEvent('on' + type,fn,false) }else{ return false }} 1-2.使用JS创建

Python中动态创建类实例

Python中动态创建类实例 简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模块.如下: def createInstance(module_name, class_name, *args, **kwargs): module_meta = __import__(module_name, globals(), locals(), [class_n