C# 如何根据 Type myType实例获取类

tomcat 2011-10-17 11:02:17
如题,请各位大牛帮忙看看,十分感谢

PS,获取的是实体类哦,可不是ClassName,或Object
...全文
739 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomcat 2011-10-18
  • 打赏
  • 举报
回复
已经搞定了,但是还是要感谢大家的帮助,我的解决办法如下:

void ControlNameBinding(string className)
{
Type[] types = this.GetType().Assembly.GetTypes();
foreach (Type type in types)
{

if (type.Name.ToUpper() == className.ToUpper())
{
object obj = Activator.CreateInstance(type);
IEnumerable<Button> buttons = FindChildren<Button>(obj as FrameworkElement);
List<ListItemInfo> listItems=new List<ListItemInfo>();

ListItemInfo blankItem = new ListItemInfo();
blankItem.Value = String.Empty;
blankItem.Text = String.Empty;
listItems.Add(blankItem);

foreach (Button button in buttons)
{
ListItemInfo listItem=new ListItemInfo();
listItem.Value = button.Name;
listItem.Text = button.Content.ToString();
listItems.Add(listItem);
}

}
}
}

IEnumerable<T> FindChildren<T>(FrameworkElement parent) where T : class
{
var count = VisualTreeHelper.GetChildrenCount(parent);
if (count > 0)
{
for (var i = 0; i < count; i++)
{
var child = VisualTreeHelper.GetChild(parent, i);
var t = child as T;
if (t != null)
yield return t;

var children = FindChildren<T>(child as FrameworkElement);
foreach (var item in children)
yield return item;
}
}
}
tomcat 2011-10-17
  • 打赏
  • 举报
回复
求关注
tomcat 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 langmafeng 的回复:]

myType.GetType()
[/Quote]

GetType()方法返回类型是Type,不是Class
langmafeng 2011-10-17
  • 打赏
  • 举报
回复
myType.GetType()
tomcat 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sdl2005lyx 的回复:]

Assembly myAssemble = Assembly.LoadFile(path);
object obj=myAssemble.CreateInstance(ClassName);
[/Quote]

这个获取的是实例,我是要实体类哦
sdl2005lyx 2011-10-17
  • 打赏
  • 举报
回复
Assembly myAssemble = Assembly.LoadFile(path);
object obj=myAssemble.CreateInstance(ClassName);
tomcat 2011-10-17
  • 打赏
  • 举报
回复
求关注,大牛们帮忙看看,感谢
tomcat 2011-10-17
  • 打赏
  • 举报
回复
哦,比如Type type= this.GetType().Assembly.GetType("className");
我想根据type获得这个类,
或有什么办法根据ClassName 可以获取实体类也行
bdmh 2011-10-17
  • 打赏
  • 举报
回复
什么意思,你要什么结果
showjim 2011-10-17
  • 打赏
  • 举报
回复
class是编译时的东西,你想要的应该是Type+反射
DataGridView打印控件5.3版 窗口程序使用演示 包含多个打印控件在窗口程序使用的实例及源代码(有C#的,也有VB的),有源代码 打印控件 实际的打印控件(含.NET4.0的专用打印控件) 网页中使用演示 打印控件在网页中使用的演示程序(有源代码) 1、DGVPrint和VB2008Print 组件在分组打印时,可以在标题中打印当前组名(使用变量“$组名$”); 2、对DGVPrint组件的打印参数设置界面进行了重新排版,并去掉了说明页; 3、增加了DrawTitle和DrawTitleEx函数,方便打印标题行; 4、打印DGV表格时单元格的边距完全按DGV本身的设置进行打印(原来只能按DGV的DefaultCellStyle.Padding设置的大小打印); 5、DGVPrint组件增加了多个属性用于控制弹出的打印参数设置窗口中允许进行更改的项(请参数以EnableChange开头的属性,有9个); 6、解决在64位操作系统下无法弹出打印对话框的问题,去掉了打印处理进度窗口中的“.NET轻松打印控件”字样; 7、彻底解决了调用Excel后(导出为excel文件)Excel进程未关闭问题; 8、多表头组件MulHeaderDataGridView具有单元格内容合并显示功能; 9、新增DrawExpression函数,结合ExpressionDrawer可以很方便对单变量表达式进行绘图打印 10、增加了网中使用的打印控件WebPrintServer的水印打印功能和装订线打印功能 11、增加了将报表文件(you结尾的文件)和报表模板生成的报表(用EasyReport组件的GetReportString方法得到的字符串)添加到VB2008Print组件的当前打印作业中的方法(详见AddReport和AddReportByString方法) 12、删除了PrintDataGrid函数(若要打印DataGrid,请先调用ConvertDataGridToDGV函数将DataGrid转换为DataGridView再以打印DGV的形式打印)和ChartGraph图表组件(图表打印请使用功能更强大且不依赖Excel的Chartlet图表组件) 13、其他一些完善,比如对DrawTextEx函数进行了完善,解决了有时出现“同一依赖程序集的不同版本之间出现冲突”警告的问题(如果出现,这个问题也并不影响程序的编译和运行,您不用太在意),如果电脑上未安装打印机驱动,程序会给出友好提示而不是像以前一样报错,对部分帮助文件内容进行了完善(如PrintDGV等函数)。 使用说明:只需要把dll引用到项目、添加打印事件 Private Sub Btn_Printer_Click(sender As System.Object, e As System.EventArgs) Handles Btn_Printer.Click '调用打印 DgVprint1.Alignment = StringAlignment.Center '表格居中 DgVprint1.MainTitle = "监控系统报表记录打印" DgVprint1.SubTitle = "苏州市华工照明科技有限公司" DgVprint1.TableHeaderLeft = "编制单位:路灯管理所" DgVprint1.TableFooterLeft = "制表:苏州市华工照明科技有限公司" DgVprint1.PrintType = VBprinter.DGVprint.mytype.GeneralPrint '在此还可以设置其他属性,当然,也可以DGVPRINT1的悔改窗口中进行设置,效果完全一样的 DgVprint1.Print(Me.DataGridView, False) End Sub 以下为导出excel方法实例: Private Sub BtnToExcel_Click(sender As System.Object, e As System.EventArgs) Handles BtnToExcel.Click 'Dim To_Excel As New To_Excel(Me.DataGridView) '方法一:导出excel Dim ToExcel As New VBprinter.DGVprint '方法二:导出excel ToExcel.ExportDGVToExcel(Me.DataGridView) ToExcel.Dispose() End Sub

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧