gpt4 book ai didi

c# - 可以使用反射来实例化对象基类属性吗?

转载 作者:太空狗 更新时间:2023-10-29 23:35:05 24 4
gpt4 key购买 nike

像这样:

    public class remoteStatusCounts : RemoteStatus 
{
public int statusCount;

public remoteStatusCounts(RemoteStatus r)
{
Type t = r.GetType();
foreach (PropertyInfo p in t.GetProperties())
{
this.property(p) = p.GetValue(); //example pseudocode
}
}
}

示例有点简单(它来自 Jira API - RemoteStatus 有 4 个属性),但想象一下基类有 30 个属性。我不想手动设置所有这些值,尤其是当我的继承类只有几个额外属性时。

反射(reflection)似乎暗示着答案。

我在 Using inheritance in constructor (publix X () : y) 看到了我可以调用基类构造函数(我想?如果我错了请纠正我),但我的基类没有构造函数 - 它派生自 jira wsdl

        public remoteStatusCounts(RemoteStatus r) : base(r) { //do stuff }

编辑我可以想象 2 个有效的解决方案:上面概述的那个,以及某种类型的关键字,如 this.baseClass 属于 type(baseclass) 并照此操作,充当某种指向 this 的指针。因此,this.baseClass.name = "Johnny" 将与 this.name = "Johnny"

完全相同

出于所有意图和目的,我们假设基类有一个复制构造函数——也就是说,这是有效的代码:

        public remoteStatusCounts(RemoteStatus r) {
RemoteStatus mBase = r;
//do work
}

编辑2这个问题更多的是一个思想练习而不是一个实际的练习——为了我的目的,我可以很容易地做到这一点:(假设我的“基类”可以复制)

    public class remoteStatusCounts 
{
public int statusCount;
public RemoteStatus rStatus;
public remoteStatusCounts(RemoteStatus r)
{
rStatus = r;
statusCount = getStatusCount();
}
}

最佳答案

尝试 AutoMapper .

关于c# - 可以使用反射来实例化对象基类属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3072518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com