2010-02-15 14 views
5

C# 4'te, DynamicObject öğesinden türetilirken ve TryInvokeMember öğesinin geçersiz kılınmasında, çağrı sitesinde sağlanan herhangi bir parametrenin dışarı veya ref anlamıyla geçip geçmediği nasıl belirlenebilir? Bu bilgileri içeren (Microsoft.CSharp.RuntimeBinder.ICSharpInvokeOrInvokeMemberBinder.ArgumentInfo özelliği) sağlanan bağlayıcıda bazı özel alanları görebiliyorum, ancak erişilemez gibi görünüyor. Bu bilginin bir yerde mevcut olması gerektiğini varsayarsam, ürünle verilen bilgileri oldukça ciddi şekilde sınırlar.C# 4: Dinamik çağrılarda parametre geçiş semantiklerini belirleme

cevap

2

Bunun için DLR ekibiyle konuştum. Ne yazık ki, cevap hayır, bu bilgi DynamicObject için mevcut değil.

Bunun nedeni ref/out parametrelerinin çok özel olmasıdır. Ve dinamik nesneler birçok dil arasında paylaşılabilir ve tüm langauges bu notasyonlara sahip değildir. DynamicObject, "call-by-value" dir, bu yüzden nesneleriniz farklı API'ler tarafından tüketilebilir.

+0

Yardımlarınız için teşekkürler. Bunun mümkün olmayacağından şüphelendim. –

İlgili konular