c#中如何利用反射设置属性值

如题所述

using System;
using System.Reflection;

class RowAdapter
{
    private string Name { get; set; }
    public long Id { get; set; }
}
class Program
{
    public static void Main(string[] args)
    {
        RowAdapter row = new RowAdapter();
        Type type = typeof(RowAdapter);
        //或者 Type type = row.GetType();
        
        //设置公有属性
        PropertyInfo pubproperty = type.GetProperty("Id");
        pubproperty.SetValue(row, 1);
        
        //设置私有属性
        BindingFlags bindAttr = BindingFlags.Instance | BindingFlags.NonPublic
        PropertyInfo priproperty = type.GetProperty("Name", bindAttr);
        priproperty.SetValue(row, "hello world!");
    }
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C# 中属性PropertyInfo的setvalue用法说明
示例一:调整类属性值 示例代码如下,通过反射设置`MyClass`对象的`MyProperty`属性为42。首先获取`MyClass`对象的`PropertyInfo`实例,并在确认可写前提下调用`SetValue`方法。最后输出`MyClass`对象的`MyProperty`属性,值变更为42。示例二:调整对象索引器属性值 此示例中,通过反射调整`MyClass`对象...

C#利用反射修改数组的值
pt.SetValue(test,value, null);}

C# 中如何使用反射,执行一个属性的方法?
object obj = ass.CreateInstance(dllName.Substring(0, dllName.Length - 4) + "." + dllName.Substring(0, dllName.Length - 4));\/\/执行接口中的GetMainIndex方法获取iMainIndex Int32 iMainIndex = (Int32)method.Invoke(obj, null);\/\/获取接口中的InitMainControl方法 method = typeInter...

C# 如何通过反射改变私有属性的值?
你需要初始化一个ReflectionPermission对象,并使用MemberAccess的ReflectionPermissionFlag初始化,调用Demand请求权限,如果上下文允许你这么操作不会出现安全问题,代码就不会抛出异常继续执行,你就可以通过反射访问私有成员了 但是提醒你,这么做危险性很大,破坏了类的封装性,建议不要这么操作,调试极其困难 ...

走进C#反射机制
首先,我们通过代码段1展示一个类,接下来通过代码段2展示如何使用反射获取属性值。利用Type的GetField()方法,我们可以轻松获取属性变量,如privateUnStatic等。通过代码段2中的例子,我们能够实际运行并查看结果。接着,我们介绍如何通过反射获取访问器,例如PublicProperty。这同样涉及到Type的GetProperty()...

C#如何动态给dll中的类的一个属性赋值
反射赋值,加载DLL,SetValue。类似这样 MyClass obj = new MyClass();Type t = typeof(MyClass);\/\/循环赋值 int i = 0;foreach (var item in t.GetProperties()){ item.SetValue(obj, i, null);i += 1;} \/\/也可以根据属性名来赋值 t.GetProperty("属性名").SetValue(obj, 值, ...

c#反射获取obj中每个对象的属性值。 比如对象person 属性值 age name...
foreach(var item in (IEnumerable)ls){ object obj=item;\/\/此处用反射去获取obj的属性就可以了。}

C# object对象 属性
利用反射将你要使用的对象的type取出后,就可以如下例一样取得必要的属性值了。将String类型的类名直接转换成类,需要知道assembly是那个DLL。可以参考我下面的例子。assembly是DLL,取到assembly之后,通过GetType可以取到类、再通过Activator实例化这个类,就可以使用了。详细的可以看一下最下面的例子。using...

c#中的静态变量,怎么通过反射的方式获取指定变量名称的值呢?比如说一...
class Test { public static string StaticPer = "StaticPer"; public readonly string ReadOnlyPer = "ReadOnlyPer"; public const string ConstPer = "ConstPer"; public string GetPer { get { return "GetPer"; } } private string _SetPer; public string SetPer {...

关于C#使用反射,利用反射从SQLDataReader中遍历数据,给对象赋值。_百度...
首先连接数据库;(把其中的OleDbConnection换成sql数据库的链接对象SqlConnection )private static OleDbConnection connection;public static OleDbConnection Connection { get { if (connection == null){ connection = new OleDbConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"...

相似回答