当前位置:编程学习 > C#/ASP.NET >>

C#使用反射Assembly.Load().CreateInstance()方法反射实例化类的时候,提示“未能计算表达式的值”

以下为我写的一个C#反射的例子,
在使用反射Assembly.Load().CreateInstance()方法反射实例化类的时候,提示“未能计算表达式的值”,实在不知道该怎么解决望网上大牛帮忙指点一下。十分感谢。急急急……

public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Assembly assembly = Assembly.LoadFile(@"D:\WORK\WebApplication4\WebApplication4\bin\ClassLibrary1.dll");
            //此处提示“未能计算表达式的值”
            var obj = assembly.CreateInstance("heeh.CS");
            //此处可以获得到类型,并且可以或得到里面的属性
            var type = assembly.GetType("heeh.CS");
        }
    }

以下为D:\WORK\WebApplication4\WebApplication4\bin\ClassLibrary1.dll程序记得代码
namespace heeh
{
    public class FF
    {
        public FF()
        {
        }
        public int CS
        {
            get { return 0; }
            set { }
        }
    }
} --------------------编程问答-------------------- var obj = assembly.CreateInstance("heeh.CS");
=>
var obj = assembly.CreateInstance("heeh.FF"); --------------------编程问答-------------------- 哈哈,我写错了,我就是按照你的写的,但是不行

引用 1 楼 guwei4037 的回复:
var obj = assembly.CreateInstance("heeh.CS");
=>
var obj = assembly.CreateInstance("heeh.FF");
--------------------编程问答-------------------- 我刚试了一下,按照我说的那个改一下,不报错,可以获得CS的值。 --------------------编程问答-------------------- 这……有什么注意事项么?我这总是取不到 --------------------编程问答-------------------- 希望大神帮忙给一个解决方案啊,我还是取不到啊 --------------------编程问答--------------------
      Assembly asm = Assembly.LoadFile(@"d:\my documents\visual studio 2010\Projects\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll");
            object obj = asm.CreateInstance("heeh.FF");
            Type type = asm.GetType("heeh.FF");
            MethodInfo[] mi = type.GetMethods();
            foreach (MethodInfo m in  mi)
                Response.Write(m.Name+"</br>");

运行了你的代码,返回值:
get_CS
set_CS
ToString
Equals
GetHashCode
GetType

 

补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,