Любой способ проверить, является ли XmlSchemaParticle пустым элементом? - PullRequest
7 голосов
/ 15 марта 2011

Я борюсь с чем-то здесь, есть ли правильный способ проверить, является ли XmlSchemaParticle EmptyParticle или нет?

XmlSchemaParticle.EmptyParticle, кажется, являетсязакрытый внутренний класс XmlSchemaParticle.

То, что я сейчас делаю, это particle.GetType().Name == "EmptyParticle", и я нахожу это довольно уродливым.

Любой другой вариант?

Ответы [ 4 ]

2 голосов
/ 02 декабря 2013

Я столкнулся с той же проблемой сегодня.Мне удалось обойти это, проверяя XmlSchemaComplexType.ContentType свойство:

public bool HasEmptyParticle(XmlSchemaComplexType type)
{
    return type.ContentTypeParticle != null && type.ContentType == XmlSchemaContentType.Empty;
}
1 голос
/ 03 апреля 2011

Я думаю, что вы должны считать любой ContentTypeParticle с MaxOccurs == 0 пустым.

1 голос
/ 17 марта 2011

Я попробовал то же самое решение, что и вы, но все в порядке.Вот-вот попробую: http://www.c -sharpcorner.com / Forums / Thread / 54685 / Detecting-xmlschemacomplextype-contentparticletype-is-equal.aspx

0 голосов
/ 07 января 2016

Я знаю, что это старый, но что если вы проверили, если ContentTypeParticle не был общедоступным.

If (! Type.ContentTypeParticle.GetType (). IsPublic) {

}

Я знаю, что вы специально тестируете на пустое, но можем ли мы предположить, что внутренний / закрытый тип объекта отражает пустой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...