首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ExpandoObject添加到已经存在的ExpandoObject中?

如何将ExpandoObject添加到已经存在的ExpandoObject中?
EN

Stack Overflow用户
提问于 2022-03-31 07:12:09
回答 1查看 56关注 0票数 1

这是我的代码:

代码语言:javascript
复制
dynamic App = new ExpandoObject();
//App names are SAP, CRM and ERP 

//App names - adding static
//App.SAP = new ExpandoObject();
//App.CRM = new ExpandoObject();
//App.ERP = new ExpandoObject();

在最后4行中,我添加了一个ExpandoObject静态,因为我以前知道应用程序的名称。但我想动态地做这个。

我可以动态地处理这些属性:

代码语言:javascript
复制
AddProperty(App.SAP, "Name", "sap name");
AddProperty(App.SAP, "UserID", "sap userid");
AddProperty(App.SAP, "EmailID", "userid@sap.com");
AddProperty(App.SAP, "GroupOf", "group1, group2, group3");


public static void AddProperty(ExpandoObject expando, string propertyName, object propertyValue)
{
    // ExpandoObject supports IDictionary so we can extend it like this
    var expandoDict = expando as IDictionary<string, object>;
    if (expandoDict.ContainsKey(propertyName))
        expandoDict[propertyName] = propertyValue;
    else
        expandoDict.Add(propertyName, propertyValue);
}

但是我需要将这个对象App.SAP添加到这个应用程序中,这个应用程序也是一个ExpandoObject,所以以后我可以动态地添加App.CRMApp.ERP

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-31 07:50:45

你会得到

ExpandoObject没有SAP的定义.

采用这一办法:

代码语言:javascript
复制
AddProperty(App.SAP, "Name", "sap name");

因为您没有在SAP中声明APP ExpandoObject。

相反,您可以尝试通过提供AddProperty并处理嵌套对象来修改parentName方法。

代码语言:javascript
复制
AddProperty(App, "SAP", "Name", "sap name");
AddProperty(App, "SAP", "UserID", "sap userid");
AddProperty(App, "SAP", "EmailID", "userid@sap.com");
AddProperty(App, "SAP", "GroupOf", "group1, group2, group3");
代码语言:javascript
复制
public static void AddProperty(ExpandoObject expando, string parentName, string propertyName, object propertyValue)
{
    // ExpandoObject supports IDictionary so we can extend it like this
    var expandoDict = expando as IDictionary<string, object>;
    if (expandoDict.ContainsKey(parentName))
    {
        ((IDictionary<string, object>)expandoDict[parentName])[propertyName] = propertyValue;
    }
    else
    {
        Dictionary<string, object> child = new Dictionary<string, object>
        {
            { propertyName,  propertyValue }
        };
            
        expandoDict.Add(parentName, child);
    }
}

样本程序

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71688317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档