首页 > 解决方案 > 如何使用不同动态对象的列表设置动态对象数组属性

问题描述

我将 2 个动态对象传递到我的方法中。'injuredParty' 有一个名为dependents 的属性,它是一个我想用第二个动态对象'dependent' 填充的依赖数组

这可能吗?

public static dynamic MapTrustOnline(DetailedDto detailed, dynamic injuredParty, dynamic dependent) { 

    injuredParty.dependents = new dependent[4];

    for(int i = 0; i <= detailed.dependents.length; i++) {
        var dynDependent = new dependent();
        dynDependent.property1 = detailed.dependents[i].property1;
        dynDependent.property2 = detailed.dependents[i].property2;
        injuredParty.dependents[i] = dynDependent;
    }
}

标签: c#dynamicreflection

解决方案


我通过在类中传入依赖对象然后在下面执行此操作来解决它。

        var genDependents = detailedClaim.Matter.MatterData.GeneralDependentDto;
        inj.dependents = new T[genDependents.Count];
        var i = 0;
        foreach (var dep in genDependents) {

            T myObj = new T();
            var birthDateProp = myObj.GetType().GetProperty("birthdate");
            birthDateProp.SetValue(myObj, (DateTime)dep.BirthDate, null);
            inj.dependents[i] = myObj;
            i++;
        }   

推荐阅读