FileGDB中的要素类字段使用了Domain,如何获取该字段的Name而非Value?

对FileGDB添加了Coded domains,FileGDB中的要素类的字段使用了该Coded domains,现在通过获取IFeature.get_Value(0)获取的值为1,2,3...,怎么获取属性表中显示的Name(string)值?
已邀请:

朱新颖

赞同来自:

【解决办法】:
1,获取IWorkspace,将其转为IWorkspaceDomains
2,通过IWorkspaceDomains.get_DomainByName();获取IDomain,已知是Coded domain,则将其转为ICodedValueDomain
3,通过ICodedValueDomain.get_Value(index);和ICodedValueDomain.get_Name(index);获取其value和name
通过IFeature.get_Value();获取的属性值为value,根据上面的value和name对应关系,即可获取该要素类属性表中显示的Name值。


 IWorkspace workspace = getWorkspace(esriDataSourcesGDB.FileGDBWorkspaceFactory, @E:\ZhuXinying\testData\Data.gdb);
            IWorkspaceDomains workspaceDomains = workspace as IWorkspaceDomains;
            IDomain domain = workspaceDomains.get_DomainByName(Test Code);
            ICodedValueDomain codedValueDomain = domain as ICodedValueDomain;
            for(int i =0;i<codedValueDomain.CodeCount;i++)
            {
                string value = codedValueDomain.get_Value(i).ToString();
                string name = codedValueDomain.get_Name(i);
            }

要回复问题请先登录注册