c#-反射-ui对象自动为model对象赋值-简单实验
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-反射-ui对象自动为model对象赋值-简单实验,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1368字,纯文字阅读大概需要2分钟。
内容图文
![c#-反射-ui对象自动为model对象赋值-简单实验](/upload/InfoBanner/zyjiaocheng/600/7ae92ee22ac14d868b5696660161bb59.jpg)
1.代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("hello word");
Program p = new Program();
p.main();
Console.ReadKey();
}
private void main() {
A a = new A();
Form1 f = new Form1();
createModel(a,f);
a.display();
}
class Form1 : Form {
public TextBox a;
private TextBox b;
public Form1() {
a = new TextBox();
a.Text = "1";
b = new TextBox();
b.Text = "str";
}
}
class A {
public int a;
private string b;
public void display() {
Console.WriteLine("a:"+a);
Console.WriteLine("b:"+b);
}
}
private void createModel(Object o, Form f)
{
Type type = o.GetType();
Type typp2 = f.GetType();
foreach (FieldInfo fieldInfo in type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
Object filed = fieldInfo.GetValue(o);
Object o2 = typp2.GetField(fieldInfo.Name, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).GetValue(f);
if (o2.GetType().Name == "TextBox")
{
TextBox t = (TextBox)o2;
string str = t.Text;
if (str != null && str.Trim().Length > 0)
{
String typeNeme = fieldInfo.FieldType.Name;
if (typeNeme == "Int32")
{
int invalue = int.Parse(str);
fieldInfo.SetValue(o, invalue);
}
else if (typeNeme == "String")
{
fieldInfo.SetValue(o, str);
}
}
}
}
}
}
}
2.运行
内容总结
以上是互联网集市为您收集整理的c#-反射-ui对象自动为model对象赋值-简单实验全部内容,希望文章能够帮你解决c#-反射-ui对象自动为model对象赋值-简单实验所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。