Aşağıdaki kod harika çalışıyor. Get
ve Use
yöntemleri farklı derlemelerdeyse, kod bir RuntimeBinderException ile başarısız olur. Bunun nedeni, .Net çalışma zamanı sisteminin yalnızca anonim türlerin (bu örnekte <string, int>
) ortaklıkları meclislerde garanti etmesinden kaynaklanmaktadır.Montaj sınırları boyunca dinamik anonim tür döndürme/tüketme
Çalışma zamanı sistemini bunun üstesinden gelmek için kandırmanın bir yolu var mı? Nesneyi hata ayıklayıcıda Use
tarafında denetleyebilir ve hata ayıklayıcı ilgili özellikleri görebilir.
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 };
}
}
Gönderiyi işaret eden bağlantı bozuldu –
Çözüm "1" yukarıdaki yazıya aslında oldukça ilginç. Temelde [montaj: assemblyalsfo.cs'ınızda bulunan InternalsVisibleTo ("SomeOtherAssembly")] oldukça iyi çalışır. – OFConsulting