c# – Dynamics Crm:获取statuscode / statecode映射的元数据

在Dynamics CRM 2011中,在事件实体上,“状态原因”选项集(又称状态码)与“状态”选项集(也称为状态码)相关,

例如看到这个截图

当我使用API​​来检索状态原因选项集时,如下所示:

RetrieveAttributeRequest attributeRequest = new RetrieveAttributeRequest
        {
            EntityLogicalName = "incident",LogicalName = "statuscode",RetrieveAsIfPublished = true
        };
        RetrieveAttributeResponse attributeResponse = (RetrieveAttributeResponse)serv.Execute(attributeRequest);
        AttributeMetadata attrMetadata = (AttributeMetadata)attributeResponse.AttributeMetadata;
        StatusAttributeMetadata statusMetadata = (StatusAttributeMetadata)attrMetadata;
        var dict = new Dictionary<int?,string>();
        foreach (OptionMetadata optionMeta in statusMetadata.OptionSet.Options)
        {
            dict.Add(optionMeta.Value,optionMeta.Label.UserLocalizedLabel.Label);
        }

它的工作原理是,我得到了“状态原因”(statuscode)选项的整个列表.但是,我没有获取任何有关“状态原因”(statuscode)选项与哪个“状态”(statecode)选项相关的信息.

如何获取该信息?

解决方法

你已经有一切尝试将这段代码插入foreach:
int stateOptionValue = (int)((StatusOptionMetadata)optionMeta).State;

如果使用StatusOptionMetadata的State属性,请参阅StatusAttributeMetaData.OptionSet.Options层次结构可以返回一个名为StatusOptionMetadata的类型,它将返回该statuscode属于的状态码.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...