मुझे एक सामान्य विधि TResult Foo<TSource, TResult>(IEnumerable<TSource> source)
मिली है और यदि TResult
को dynamic
के रूप में घोषित किया गया है, तो मैं अन्य प्रकार की घोषणाओं के मुकाबले एक अलग कोड पथ निष्पादित करना चाहता हूं।मैं टाइपऑफ (गतिशील) के लिए कैसे परीक्षण करूं?
if (typeof(TResult) == typeof(int))
return ExpressionFactory.CreateExpandoFunction<TSource, TResult>();
लेकिन if (typeof(TResult) == typeof(dynamic))
संकलन नहीं करता है:
।
dyanmic x = Foo<int, dynamic>(list);
के बाद से गतिशील अपने आप में एक प्रकार मैं के लिए क्या परीक्षण किया जाना चाहिए नहीं है:
वहाँ रनटाइम पर दृढ़ संकल्प की इस तरह बनाने के लिए जब विधि घोषणा के साथ कहा जाता है वैसे भी है? IDynamicMetaObjectProvider
?
EDIT यह System.Linq.Expression मूल्यांकनकर्ता के लिए एक SQL पाठ का हिस्सा है।
if (type is struct)
create selector that initializes each element to result values
else if (type is class)
create selector that initialize each element to new instance and set member properties
else if (type is dynamic)
create selector that initializes each element to new `ExpandoObject` and populates/sets member properties
इसके लिए आवश्यकता है? – Gishu