关于C#反射、程序集的应用的一个问题~~毕业设计/论文~~求各位大侠赐教!

问题描述

问题可能有点长...本人是非计算机专业的菜鸟...某些问题可能也表述不清楚啊...我要做的是面向对象有限元的程序框架设计简单来说.我的毕业设计/论文要用C#实现这样一种功能我要做一个框架...基本已经做好了.做了一些简单的类(三角形四边形单元等),并且能够计算出结果...现在为了方便用用户自行设计、添加单元(就是类),并利用已有的程序框架调用这些单元我想做到的效果是...用户把自定义的类的源代码写在txt上,然后通过框架里面已有的子程序读取txt的内容并且生成相应的类。这样以后就可以随意添加单元来进行计算了。我知道可以用反射、CodeDom的方法实现根据txt上的内容生成类,我也做过简单的试验并且成功了(比如读取txt上的Console.WriteLine("HelloWorld!")并生成相关程序。)这些自定义的类需要实现原来框架里面的一些接口或者继承、使用某些类。但现在的情况是。。。编译的时候会产生错误,说框架里面的接口不可访问。。。以及利用反射实例化这些自定义类的时候不成功(总是返回null)。。。这是因为我原来的框架和动态编译的代码属于不同的程序集的原因吗?但我又看到两边的程序集的全名都是相同的。。。是不是还有什么地方要怎么搞?求大神帮助啊~~~~!

解决方案

解决方案二:
面向接口编程是不需要什么反射的。不要轻易(滥用)反射,更何况你不是专业开发,只是做一些一般工具,用面向对象系统扩展方法就是一种很正统的扩展方法,除了一两行反射代码,例如在程序启动时Activator.CreateInsatnce(...)一个对象实例,其它代码应该与反射没有半点关系。
解决方案三:
另外,假设你使用.net4.0,实际上也无需写“一两行反射代码”,集成在.netframework中的MEF就是干这个的。
解决方案四:
引用1楼的回复:

面向接口编程是不需要什么反射的。不要轻易(滥用)反射,更何况你不是专业开发,只是做一些一般工具,用面向对象系统扩展方法就是一种很正统的扩展方法,除了一两行反射代码,例如在程序启动时Activator.CreateInsatnce(...)一个对象实例,其它代码应该与反射没有半点关系。

哈哈..后来弄好了.是有个地方的命名空间弄错了.因为我想做到的效果是其他人拿着我编译好的exe文件来用.然后可以通过txt继续添加自定义单元.由于这些用户自定义单元的类名以及数量我事前都不知道.所以也不好用工厂来弄.我想到的只能是从外部获得关于这些信息的字符串.而我知道的能这么做的就只有反射啦.事实上也只是在创建那个对象实例的时候要用到反射.哈哈~还是非常感谢~~~~还想再问一下有没有其他办法可以达到这种效果?
解决方案五:
该回复于2012-04-23 08:50:03被版主删除

时间: 2024-10-01 02:12:04

关于C#反射、程序集的应用的一个问题~~毕业设计/论文~~求各位大侠赐教!的相关文章

反射程序集

         通过Type,我们可以对任何类型进行反射读取,同样,也可以把读取的对象的范围扩大.       一,关于程序集               在.net中,程序集是进行部署,版本控制的基本单元:               System.reflection命名空间下的Assembly类型,代表了一个程序集,并包含了关于程序集的信息.              获取assembly对象的方法:                   loadForm 参数:程序集的文件名称(如果加载

c#-C# 反射 方法 带参数是(委托型)求 高人解答

问题描述 C# 反射 方法 带参数是(委托型)求 高人解答 C# 反射 方法 带参数是(委托型) 方法 (委托 ) { 委托1= 委托 } 解决方案 object[] obj= new object [] { Messagecallback};//Messagecallback() 是写的一个方法 与委托 定义参数一样 return t.InvokeMember(name, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlag

一个算法题,求答案啊啊啊啊

问题描述 一个算法题,求答案啊啊啊啊 白班 09:00-18:00 通班 09:00-21:00 每个人每个月通班数量必须等于早中班和中晚班数量之和 早中班 09:00-15:00 中晚班 15:00-21:00 假设:每月按照30计算. 排班规则: 1.每个人每个月固定休息6天连续上班天数不超过7天. 2.每天各班次上班的人数最低需求:8个白班5个通班1个早中班,2个中晚班. 3.每个月每个人的通班天数安排不超过8天. 4.每个人每个月早中班和中晚班的天数之和需要与通班天数相等. 5.每月最多

结果是什么啊-一个小程序,求解答啊

问题描述 一个小程序,求解答啊 在别人文章里看到的程序 程序的输出结果是什么,why? #include int main() { int a[5] = {1,2,3,4,5}; int p = (int)(&a + 1); printf("%d, %dn", *(a + 1), *(p -1)); } 解决方案 int a[5] = {1,2,3,4,5}; int* p = (int*)(&a + 1); printf("%d, %dn", *(

c c++-求用c编写的一个简单的爬虫程序,高手赐教,不胜感激

问题描述 求用c编写的一个简单的爬虫程序,高手赐教,不胜感激 本人是初学者,要编写一爬虫程序,抓取60多万个网页上的信息,实在是无从下手,请高手给一个能看得懂的简单的爬虫程序学习用,多谢 解决方案 我也要写一个C爬虫,不过遇到了一些问题,比如58这样的网站,用getaddrinfo返回的ip无法连接,已经耽误了我好几天了,别的问题到还没遇到

方法-关于return语句的一个小白问题,求大神帮助!

问题描述 关于return语句的一个小白问题,求大神帮助! namespace ConsoleApplication34 { class Program { static string k(string b) { string a; a = "你的名字是" +b; return a; } static void Main(string[] args) { Console.WriteLine("输入姓名"); string c = Console.ReadLine()

算法-c++的一个简单的实现 求大神帮帮忙

问题描述 c++的一个简单的实现 求大神帮帮忙 1. 定义一个普通帐户类Account,成员变量包括:string型的m_acctNo(账号)和m_acctPass(取款密码),double型的m_balance(余额).成员函数包括构造函数,取款WithDraw(double m).存款Deposit(double m).修改密码ChangePass()和显示帐户信息Display(). 以Account类做基类,派生出信用卡类Credit,新增成员变量m_overDraft,表示信用卡透支额

一个空指针异常问题,求大神帮忙解决下,在线等

问题描述 一个空指针异常问题,求大神帮忙解决下,在线等 public void getQaList(String type, String qid, String qid_min, String cat_id, String tag_id, String page, String qid_top, boolean isShowLoadingDialog) { List<RequestParameter> parameter = new ArrayList<RequestParameter

malloc-小弟谢了一个简单的字符串求最大子串的程序不知道错哪里,請大神帮忙回答下

问题描述 小弟谢了一个简单的字符串求最大子串的程序不知道错哪里,請大神帮忙回答下 程序要求如下: 一个字符串,字符连续的部分为子串(不含带数字的部分) 下面是我写的程序 #include using namespace std; char* BiggestStr(char* str) { char* pStr = (char*)malloc(sizeof(str)+1); //申请一个空间存最大子串 int nCount = 0; //用于记录最大子串的长度 int J_nCount=0; ch