我在这里遇到困难,是否有正确的方式检查XmlSchemaParticle
是否为EmptyParticle
?
XmlSchemaParticle.EmptyParticle
似乎是XmlSchemaParticle
的私有内部类。
我现在正在做的是particle.GetType().Name == "EmptyParticle"
,我觉得它很难看。
还有其他选择吗?
答案 0 :(得分:2)
我今天遇到了同样的问题。我通过检查XmlSchemaComplexType.ContentType属性来解决这个问题:
public bool HasEmptyParticle(XmlSchemaComplexType type)
{
return type.ContentTypeParticle != null && type.ContentType == XmlSchemaContentType.Empty;
}
答案 1 :(得分:1)
我和你一样尝试过同样的解决方案,但这很麻烦。即将尝试:http://www.c-sharpcorner.com/Forums/Thread/54685/detecting-xmlschemacomplextype-contentparticletype-is-equal.aspx
答案 2 :(得分:1)
我认为您应该将ContentTypeParticle MaxOccurs == 0
与{{1}}视为空。
答案 3 :(得分:0)
我知道这已经过时了,但是如果您检查了ContentTypeParticle是否不公开会怎样。
if(!type.ContentTypeParticle.GetType()。IsPublic) {
}
我知道你是专门测试空的,但是我们可以假设内部/私有对象类型反映为空吗?