SORU
13 ŞUBAT 2010, CUMARTESİ


C# 4: Gerçek Dünyadaki Dinamik Türleri Örnek

Benim beyin yarım Dinamik Türleri C# 4, ama beni yaşam için aslında kullanmak istediğim bir senaryo çözemedim kavramı sarılı olduğunu düşünüyorum.

Çok kişi var eminim, ama ben sadece sorun arayüzleri, bağımlılık enjeksiyon, vb aksine dinamikleri ile daha iyi tanıtarak, çözüm Mühendisi ben nasıl bağlantı yaparak geçiriyorum.

Dinamik tip kullanıma uygun olduğu gerçek dünya uygulama bir senaryo nedir?

CEVAP
13 ŞUBAT 2010, CUMARTESİ


Nerede bir çok vaka varzatendinamik yazarak kullanma ve bağlama dinamikbugün. Sadece C# 4, gerekli desteği orada değildi kadar beri dizeleri veya System.Object, arkasında gizli olduğu için fark yok.

Bir örnek COM birlikte çalışabilirlik: COM aslında yarı-dinamik nesne bir sistemdir. Ne yaparsın, COM birlikte çalışabilirlik, bir sürü yöntem aslında iade dinamik bir nesne, ama çünkü C# yoktu desteği onlara, onlar döndü System.Object ve atama Kendin, muhtemelen yakalamak istisnalar yolda.

Bir başka örneğidir etkileşim ile dinamik olarak yazılan (hatta yazılmamış) veri gibi JSON, CSV, HTML, XML schemaless, schemaless web Hizmetleri, schemaless veritabanları (hangi, tüm sonra, yeni fıstığı). Bugün, bu dizeleri kullanın. XML API gibi görünecektir

var doc = new XmlDocument("/path/to/file.xml");
var baz = doc.GetElement("foo").GetElement("qux");

ve benzeri. Ama nasıl:

dynamic doc = new XmlDocument("/path/to/file.xml");
var baz = doc.foo.qux;

Güzel oldu, değil mi?

Üçüncü bir örnek yansımasıdır. Bugün, yansıma yoluyla bir yöntem çağırma InvokeMember (ya da adına ne diyorsan) için bir dize geçirerek yapılır. O, bilirsin, şu lanet şeyi çağırmak için daha iyi olmaz mı?

O zaman, varnesildinamik veri (temelde ikinci örnek tam tersi). İşte bazı dinamik XML oluşturmak için nasıl bir örnek:

dynamic doc = new XmlBuilder();
doc.articles(id=42, type="List", () => {
  article(() => {
    number(42);
    title("blahblubb");});});

Bu eşdeğer Yakut kadar güzel değil, ama bu kadar kısa sürede en bulabildiğim en iyisi bu.: -)

Ve son ama kesinlikle en az değil, bir dinamik ile entegrasyon dilidir. Bir Silverlight uygulaması JavaScript olup olmadığını, özel bir kurallar motoru iş uygulama veya CAD programı size host/metin editörü/IDE bu SAHALARI bir örneği gömülü.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ELawshea

    ELawshea

    26 Mayıs 2008
  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006