2011-05-24 16 views
5

Bir denetleyici yöntemim var:Anonim tür alanına erişmek için C# 'de dinamik kullanma - mümkün mü?

public JsonResult CalculateStuff(int coolArg) 
{ 
    if(calculatePossible) 
     return Json(CoolMethod(coolArg)); 
    else return Json(new { Calculated = false }); 
} 

Şimdi bunu test etmek istiyorum.

public void MyTest 
{ 
    var controller = GetControllerInstance(); 
    var result = controller.CalculateStuff().Data as dynamic; 
    Assert.IsTrue(result.Calculated == false);   
} 

Bu Hesaplanan tanımlanmadığını söyleyen bir RuntimeBinderException atar. Bunu başarabilmenin bir yolu var mı?

GÜNCELLEME

Jons'un tavsiyesi üzerine, test meclimi arkadaşım olmak için InternalsVisibleTo kullandım. Her şey iyi çalışıyor. Sağol Jon.

+0

Yani, daha sonra Jons' cevabı kabul etmemelidir? –

+0

@Patrick Eh ben hemen yapılabilir, ancak SO ben 10 dakika ... şimdi yapacak beklemek gerekiyordu bana söylerdi. – Max

cevap

4

Sen ancak aynı derlemenin içinde, bunu yapabilir. Anonim tip dahilidir. Gerçi test düzeneğine erişim izni verme üretim montaj InternalsVisibleTo kullanırsanız

Ayrıca tamam olmalıdır.

+0

Blerg. Teşekkürler! :) (Daha doğrusu InternalsVisibleTo kullanmak ister çünkü blerg - ama sonuçta montaj mantıksal olarak oldukça sıkı test düzeneğine eşleştirilmiş olduğundan gayet sanırım.) – Max

İlgili konular