2012-02-11 33 views
12

İfadeyi ayrıştırmaya çalışıyorum ve bir noktada System.Linq.Expressions.LogicalBinaryExpression türüyle ifadeleri ayrıştırmam gerekiyor. Hata ayıklama saatinden aldığım bu sınıf adı. expression.GetType().ToString(), "System.Linq.Expressions.LogicalBinaryExpression". Ancak bu sınıfı System.Linq.Expressions ad alanında göremiyorum. Hiçbir yer yok. MethodBinaryExpression sınıfı ile aynı şey.System.Linq.Expressions.LogicalBinaryExpression sınıfı ile ilgili sorun nedir?

türünü kontrol etmek için şimdi gerçekten sadece var Yani kesinlikle

  • expression is LogicalBinaryExpression veya
  • expression.GetType() = typeof(LogicalBinaryExpression) ancak
  • expression.GetType().ToString() == "System.Linq.Expressions.LogicalBinaryExpression"

yazmayı tercih hatası

'LogicalBinaryExpression' tür veya ad alanı adı 'System.Linq.Expressions' (bir derleme başvurusu eksik?)

nasıl mümkün ad alanında yok?

cevap

13

LogicalBinaryExpression yüzden internal şudur: almak daha zor

  1. bir Type olarak, sadece typeof(LogicalBinaryExpression) veya x is LogicalBinaryExpression kullanamazsınız olduğunu.
  2. Bu konuda herhangi bir döküman bulamazsınız.
  3. Hiç kullanmamalısınız. Her zaman değişebilen bir uygulama detayı.

Ya BinaryExpression kontrol veya ifadenin NodeType kontrol etmelidir. Aynı değer MethodBinaryExpression için geçerlidir.