2011-03-15 12 views

Respuesta

1

pienso que usted debe considerar cualquier ContentTypeParticle con MaxOccurs == 0 estar vacío.

+0

Bueno, entonces no entiendo el propósito de esa clase 'EmptyParticle'. –

+0

'EmptyParticle' no es público, significa claramente que no es para uso externo. Todo lo que hacen (o no hacen) internamente no está destinado a ser conocido por los usuarios de 'XmlSchemaParticle'. – joce

+0

No deberían devolver algo de ese tipo, ¿no crees? –

1

Me encontré con el mismo problema hoy. Yo era capaz de conseguir alrededor de él mediante la comprobación XmlSchemaComplexType.ContentType propiedad:

public bool HasEmptyParticle(XmlSchemaComplexType type) 
{ 
    return type.ContentTypeParticle != null && type.ContentType == XmlSchemaContentType.Empty; 
} 
+0

Creo que su respuesta es correcta ... ish, porque no está completa; también se devuelve una partícula vacía para 'XmlSchemaContentType.TextOnly'. – Grx70

0

Sé que esto es viejo, pero lo que si comprueba si el ContentTypeParticle no era pública.

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

}

Sé que está probando específicamente para vacío, pero nos podía ir bajo el supuesto de que un/privada interna ¿tipo de objeto refleja vacío?

+0

Esto es mucho más sucio que 'particle.GetType(). Name ==" EmptyParticle "' - También podría ser (y ciertamente lo es) completamente erróneo. Nada me dice que 'EmptyParticle' es el único tipo de partícula privada. –

+0

Eso es verdad. Solo trato de evitar las pruebas en contra del nombre de una clase interna, que teóricamente podría cambiar. No exactamente limpio tampoco. – Jeremy

Cuestiones relacionadas