2011-05-24 16 views
5

मुझे एक नियंत्रक विधि मिली है:गुमनाम प्रकार के क्षेत्र तक पहुंचने के लिए सी # में गतिशील का उपयोग करना - संभव है?

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

अब, मैं इसका परीक्षण करना चाहता हूं।

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

यह एक रनटाइमबिन्डर अपवाद कहता है कि परिकलित परिभाषित नहीं किया गया है। क्या इसे प्राप्त करने का कोई तरीका है?

अद्यतन

जोंस की सलाह के बाद, मैंने अपने परीक्षण असेंबली से मित्रता के लिए आंतरिक दृश्यों का उपयोग किया। सब कुछ ठीक काम करता है। धन्यवाद जॉन

+0

तो, क्या आपको जोंस के जवाब को स्वीकार नहीं करना चाहिए? –

+0

@ पैट्रिक वेल मैं इसे तुरंत कर सकता था, लेकिन एसओ ने मुझे बताया कि मुझे 10 मिनट इंतजार करना होगा ... अब करूँगा। – Max

उत्तर

4

आप इसे कर सकते हैं, लेकिन केवल उसी असेंबली के भीतर। अनाम प्रकार आंतरिक है।

यह भी ठीक होना चाहिए यदि आप अपनी उत्पादन असेंबली में InternalsVisibleTo का उपयोग अपने परीक्षण असेंबली तक पहुंच प्रदान करने के लिए करते हैं।

+0

ब्लर्ज। धन्यवाद! :) (ब्लर्ज इसलिए है क्योंकि मैं आंतरिक VisibleTo का उपयोग नहीं करना चाहूंगा - लेकिन मुझे लगता है कि असेंबली के बाद यह ठीक है क्योंकि आखिरकार टेस्ट असेंबली में काफी ताकतवर रूप से जोड़ा गया है।) – Max

संबंधित मुद्दे