2008-09-09 10 views
0

Microsoft ASP.NET AJAX İstemci kitaplığından yararlanmak istediğim bir Silverlight uygulaması üzerinde çalışıyorum. Silverlight 2'nin bir parçası olan HTML Köprüsü'nü kullanarak kütüphaneyi arıyorum. Silverlight, JavaScript ve Yönetilen Kod arasında geçiş yapmak için büyük destek aldı, ancak şimdi bir soruna karşı çıktım.Silverlight türünü Microsoft AJAX'a geçirin ve parametre doğrulamasını iletin

Microsoft ASP.NET AJAX İstemci Kitaplıkları bir "tip sistemi" içerir ve çerçevenin yaptığı şeylerden biri, parametrelerin doğru türde olduğunu doğrulamaktır. Sizi aramamın belirli fonksiyon Sys.Application.addHistoryPoint ve doğrulama kodu şuna benzer: denedim

var e = Function.validateParams(arguments, [ 
    {name: "state", type: Object}, 
    {name: "title", type: String, mayBeNull: true, optional: true} 
]); 

durum parametresi olarak CLR türleri her türlü geçen (C# yapılar, [ScriptableTypes ], Sözlük türleri vb. Ve her hata aldığımda: "Sys.ArgumentTypeException: 'Object' türünün nesnesi 'Object' türüne dönüştürülemez.

Bu hata, açık bir şekilde parametre doğrulamasından geliyor ... Ama NEDEN ASP.NET AJAX benim türlerim İşlevler olduğunu düşünüyor mu? Kimse MS AJAX'da tip doğrulama anlar mı?

Ben c biliyorum HtmlPage.Window.Eval ("...") çağırmak gibi bir geçici çözümler yapın ve JS entegrasyonu dizelerim olarak geçirin, ancak bunu yapmak istemiyorum. Durum parametresi olarak gerçek bir .NET tipini geçmek istiyorum.

cevap

1

Bu here ile ilgili oldukça iyi bir genel bakış buldum, ancak bu genel bakış bile bahsettiğiniz durum dışındaki tüm senaryoları kapsamıyor gibi görünüyor. Bu yapamayacağımı merak ediyorum çünkü javascript nesneleri gerçekten (daha fazla veya daha az) fonksiyonlardır.

Dize kullanarak durum nesnesini oluşturabilecek bir sarıcı işlevi yazmış olsaydınız ne olurdu?