【问题标题】:How to set a dynamic objects array property with a list of a different dynamic object如何使用不同动态对象的列表设置动态对象数组属性
【发布时间】:2020-04-15 18:08:12
【问题描述】:

我将 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;
    }
}

【问题讨论】:

  • 如果你能更好地解释逻辑它可以使用 ExpandoObject 和 IDictionary 来完成。具体来说,为什么我们需要在函数中传递动态依赖?这是必需的吗?那是在任何地方使用吗?如果我们只创建动态对象,我们不需要将它传递给 .
  • 我使用泛型解决了它。我会发布我的答案。

标签: c# dynamic reflection


【解决方案1】:

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

        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++;
        }   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多