相关疑难解决方法(0)

C#使用Reflection来复制基类属性

我想使用Reflection将所有属性从MyObject更新到另一个属性.我遇到的问题是特定对象是从基类继承的,并且不更新那些基类属性值.

以下代码复制顶级属性值.

public void Update(MyObject o)
{
    MyObject copyObject = ...

    FieldInfo[] myObjectFields = o.GetType().GetFields(
    BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);

    foreach (FieldInfo fi in myObjectFields)
    {
        fi.SetValue(copyObject, fi.GetValue(o));
    }
}
Run Code Online (Sandbox Code Playgroud)

我想看看是否有更多BindingFlags属性我可以用来帮助但无济于事.

c# reflection copy

26
推荐指数
3
解决办法
4万
查看次数

派生和基类,我可以明确设置基数吗?

public class SuperCar: Car
{
     public bool SuperWheels { get {return true; } }
}

public class Car 
{
     public bool HasSteeringWheel { get {return true;} }
}
Run Code Online (Sandbox Code Playgroud)

如何设置派生Supercar的基类?

例如,我想简单地设置SuperCars基类,如下所示:

public void SetCar( Car car )
{
SuperCar scar = new SuperCar();
car.Base = car; 
}
Run Code Online (Sandbox Code Playgroud)

基本上,如果我有Car对象,我不想手动遍历汽车的每个属性以设置SuperCar对象,我认为这是你可以做到的唯一方法,但如果你能以另一种方式做到这一点会好得多.

c# reflection derived-class copy-constructor

16
推荐指数
2
解决办法
2万
查看次数

在构造函数中使用继承(publix X():y)

我刚刚看到以下代码,但我不理解构造函数声明中的基类派生.这是什么,这可能与序数方法有关吗?

public SplashAppContext(Form mainForm, Form splashForm) : base(splashForm)
{
this.mainForm = mainForm;
splashTimer.Tick += new EventHandler(SplashTimeUp);
splashTimer.Interval = 2000;
splashTimer.Enabled = true;
}
Run Code Online (Sandbox Code Playgroud)

c# derived-class

4
推荐指数
1
解决办法
298
查看次数

标签 统计

c# ×3

derived-class ×2

reflection ×2

copy ×1

copy-constructor ×1