我要弄个反射工厂~可是他说实例化没有~请修改代码~CSDN的兄弟们靠你们了~5555~~
我都发了2贴了每人鸟我555~~高手们出来吧 ~~》。。~~工厂:
public class PersonFactory
{
public Person CreatePerson(string type)
{
Person person = null;
person=(Person)Assembly.Load("20100105-con").CreateInstance(type);
return person;
}
}在启动时是:
PersonFactory pf = new PersonFactory();
pf.CreatePerson("Students").SayHi();
Console.Read();学生类:
public class Students:Person
{
public override void SayHi()
{
Console.WriteLine("你好我是{0}学生哦!",base.Name);
}
}老师类:
public class Teacher:Person
{
public override void SayHi()
{
Console.WriteLine("我是{0}老师!",base.Name);
}
}
基类是:
abstract public class Person
{
private string name; public string Name
{
get { return name; }
set { name = value; }
}
private string sex; public string Sex
{
get { return sex; }
set { sex = value; }
}
public abstract void SayHi();
}
我都发了2贴了每人鸟我555~~高手们出来吧 ~~》。。~~工厂:
public class PersonFactory
{
public Person CreatePerson(string type)
{
Person person = null;
person=(Person)Assembly.Load("20100105-con").CreateInstance(type);
return person;
}
}在启动时是:
PersonFactory pf = new PersonFactory();
pf.CreatePerson("Students").SayHi();
Console.Read();学生类:
public class Students:Person
{
public override void SayHi()
{
Console.WriteLine("你好我是{0}学生哦!",base.Name);
}
}老师类:
public class Teacher:Person
{
public override void SayHi()
{
Console.WriteLine("我是{0}老师!",base.Name);
}
}
基类是:
abstract public class Person
{
private string name; public string Name
{
get { return name; }
set { name = value; }
}
private string sex; public string Sex
{
get { return sex; }
set { sex = value; }
}
public abstract void SayHi();
}
解决方案 »
- WPF 自定义窗体设计器
- 工业控制项目,循环的优化
- 我可重载 MessageBox 不?
- 在什么情况下:用fileupload能上传图片,但是图片没有图像?在线等解
- C#程序如何使用SQL Server2005的语句截取wendosXP系统的当前日期
- 大侠们,请问一下怎么在文本框读入一个文本文件,并把文本文件的每一行分别存到一个数组里?
- (VS2003) 什么情况下会 ☆自动☆ 启用多线程
- WPF 设置AutoCompleteBox焦点
- 把DataTable数据整体 更新或者添加到数据库
- 高手请进:关于用WMI取远程PC内存的例子
- 反射工厂怎么弄?详细点~代码贴出来。~谢谢~
- 关于MYSQL中图片提取问题(图片类型为longblob)
看了一下,应该是
Assembly.Load("20100105-con").CreateInstance(type)
这一行的问题。
1、按照你的代码,Load传入的应该是dll名。
2、CreateInstance的参数应该是对象的完全限定名。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;namespace ConsoleApplication10
{
class Program
{
static void Main(string[] args)
{
PersonFactory pf = new PersonFactory();
//参数应该是完整的类型名,即:命名空间名.类名
pf.CreatePerson("ConsoleApplication10.Teacher").SayHi(); Console.ReadKey();
}
}
//工厂:
public class PersonFactory
{
public Person CreatePerson(string type)
{
Person person = null;
//参数为程序集的名称
person = (Person)Assembly.Load("ConsoleApplication10").CreateInstance(type);
return person;
} }
//学生类:
public class Students : Person
{
public override void SayHi()
{
Console.WriteLine("你好我是{0}学生哦!", base.Name);
}
} //老师类:
public class Teacher : Person
{
public override void SayHi()
{
Console.WriteLine("我是{0}老师!", base.Name);
}
}
//基类是:
abstract public class Person
{
private string name; public string Name
{
get { return name; }
set { name = value; }
}
private string sex; public string Sex
{
get { return sex; }
set { sex = value; }
}
public abstract void SayHi();
}}
十有八九是这个传错了 要传Students类所在的程序集名称(就是工程名)
20100105-con.Students