C# object对象 属性
用C#语言将object对象的属性根据string型的属性名解析出属性的值就是想把数据库中的任意表直接弄成一个对象就等于那个代码生成器生成dal一样,我想用个方法代替da...
用C#语言 将object对象的属性根据string型的属性名解析出属性的值
就是想 把数据库中的任意表直接弄成一个对象 就等于那个代码生成器生成dal一样,我想用个方法代替dal
传入个表名 跑数据库中查表的字段和说明 后返回个model层的实例对象但以object返回后用的话强转下。
另外 再问下 把string类型的类名直接转换成某类 展开
就是想 把数据库中的任意表直接弄成一个对象 就等于那个代码生成器生成dal一样,我想用个方法代替dal
传入个表名 跑数据库中查表的字段和说明 后返回个model层的实例对象但以object返回后用的话强转下。
另外 再问下 把string类型的类名直接转换成某类 展开
4个回答
展开全部
如果已知道对象的类型,这是比较简单的例子。
如果不知道对象的类型,就需要用反射来做了。
利用反射将你要使用的对象的type取出后,就可以如下例一样取得必要的属性值了。
将String类型的类名直接转换成类,需要知道assembly是那个DLL。可以参考我下面的例子。assembly是DLL,取到assembly之后,通过GetType可以取到类、再通过Activator实例化这个类,就可以使用了。详细的可以看一下最下面的例子。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
TestObj to = new TestObj();
Type t = to.GetType();
PropertyInfo pi = t.GetProperty(textBox1.Text);
if (pi != null)
{
textBox2.Text = pi.GetValue(to, new object[] { }).ToString();
}
}
}
public class TestObj
{
private string mProperty1 = "Test";
public string Property1
{
get
{
return mProperty1;
}
set
{
mProperty1 = value;
}
}
}
}
利用反射的button1_Click事件代码如下:
Assembly assembly = Assembly.Load("WindowsApplication1");
Type[] typeClass = assembly.GetTypes();
int i;
for (i = 0; i < typeClass.Length; i++)
{
if (typeClass[i].Name.Equals("TestObj") == true)
{
break;
}
}
Type t = assembly.GetType(typeClass[i].FullName);
PropertyInfo pi = t.GetProperty(textBox1.Text);
if (pi != null)
{
object objService = Activator.CreateInstance(t);
textBox2.Text = pi.GetValue(objService, new object[] { }).ToString();
}
如果不知道对象的类型,就需要用反射来做了。
利用反射将你要使用的对象的type取出后,就可以如下例一样取得必要的属性值了。
将String类型的类名直接转换成类,需要知道assembly是那个DLL。可以参考我下面的例子。assembly是DLL,取到assembly之后,通过GetType可以取到类、再通过Activator实例化这个类,就可以使用了。详细的可以看一下最下面的例子。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
TestObj to = new TestObj();
Type t = to.GetType();
PropertyInfo pi = t.GetProperty(textBox1.Text);
if (pi != null)
{
textBox2.Text = pi.GetValue(to, new object[] { }).ToString();
}
}
}
public class TestObj
{
private string mProperty1 = "Test";
public string Property1
{
get
{
return mProperty1;
}
set
{
mProperty1 = value;
}
}
}
}
利用反射的button1_Click事件代码如下:
Assembly assembly = Assembly.Load("WindowsApplication1");
Type[] typeClass = assembly.GetTypes();
int i;
for (i = 0; i < typeClass.Length; i++)
{
if (typeClass[i].Name.Equals("TestObj") == true)
{
break;
}
}
Type t = assembly.GetType(typeClass[i].FullName);
PropertyInfo pi = t.GetProperty(textBox1.Text);
if (pi != null)
{
object objService = Activator.CreateInstance(t);
textBox2.Text = pi.GetValue(objService, new object[] { }).ToString();
}
展开全部
利用 反射 循环属性 字段 和 方法等 下面只是个小例子
public String toString() {
StringBuffer buffer = new StringBuffer();
//返回所有字段
Field[] fields = OBJECT
for (int i = 0; i < fields.length; i++) {
//当前字段名称
String name = fields[i].getName();
buffer.append(name);
buffer.append(":");
try {
//当前实例该字段值
buffer.append(fields[i].get(this));
} catch (Exception ex) {
System.out.println("err:" + ex.getMessage());
}
buffer.append("\n");
}
return buffer.toString();
}
public String toString() {
StringBuffer buffer = new StringBuffer();
//返回所有字段
Field[] fields = OBJECT
for (int i = 0; i < fields.length; i++) {
//当前字段名称
String name = fields[i].getName();
buffer.append(name);
buffer.append(":");
try {
//当前实例该字段值
buffer.append(fields[i].get(this));
} catch (Exception ex) {
System.out.println("err:" + ex.getMessage());
}
buffer.append("\n");
}
return buffer.toString();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var
t
=
typeof(对象);
var
list
=
t.getproperties();
//反射取所有的属性
foreach(...........)
//遍历
t
=
typeof(对象);
var
list
=
t.getproperties();
//反射取所有的属性
foreach(...........)
//遍历
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//能不能问题说具体呢.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询