नीचे दिया गया कोड बहुत अच्छा काम करता है। यदि Get
और Use
विधियां विभिन्न असेंबली में हैं, तो कोड RuntimeBinderException के साथ विफल रहता है। ऐसा इसलिए है क्योंकि नेट रनटाइम सिस्टम केवल असेंबली के भीतर अज्ञात प्रकारों (<string, int>
) की समानता की गारंटी देता है।विधानसभा सीमाओं में गतिशील अनाम प्रकार को वापस/उपभोग करें
क्या इस पर काबू पाने के लिए रनटाइम सिस्टम को बेवकूफ बनाने का कोई तरीका है? मैं Use
पक्ष पर डीबगर में ऑब्जेक्ट का निरीक्षण कर सकता हूं, और डीबगर प्रासंगिक गुण देख सकता है।
class Program
{
static void Main(string[] args)
{
UsePerson();
Console.ReadLine();
}
public static void UsePerson()
{
var person = GetPerson();
Console.WriteLine(person.Name);
}
public static dynamic GetPerson()
{
return new { Name = "Foo", Age = 30 };
}
}
पोस्ट को इंगित करने वाला लिंक –
उपरोक्त पोस्ट में समाधान "1" वास्तव में बहुत दिलचस्प है। असल में [असेंबली: InternalsVisibleTo ("SomeOtherAssembly")] आपके assemblyinfo.cs में बहुत अच्छी तरह से काम करता है। – OFConsulting