قم بتمرير نوع Silverlight إلى Microsoft AJAX وتمرير التحقق من صحة المعلمة

StackOverflow https://stackoverflow.com/questions/51289

سؤال

أنا أعمل على تطبيق Silverlight حيث أريد الاستفادة من مكتبة Microsoft ASP.NET AJAX Client.أقوم بالاتصال بالمكتبة باستخدام HTML Bridge الذي يعد جزءًا من Silverlight 2.حصل Silverlight على دعم كبير لتمرير الأنواع بين JavaScript والتعليمات البرمجية المُدارة، ولكن الآن واجهت مشكلة.

تتضمن مكتبات عميل Microsoft ASP.NET AJAX "نظام كتابة"، وأحد الأشياء التي يقوم بها إطار العمل هو التحقق من أن المعلمات من النوع الصحيح.الوظيفة المحددة التي أتصل بها هي Sys.Application.addHistoryPoint, ، ورمز التحقق يبدو كالتالي:

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

لقد حاولت تمرير جميع أنواع أنواع CLR كمعلمة الحالة (بنيات C#، [ScriptableTypes]، أنواع القاموس وما إلى ذلك.وفي كل مرة أحصل على الخطأ:

"Sys.ArgumentTypeException:لا يمكن تحويل كائن من النوع "Function" إلى نوع "Object"

من الواضح أن هذا الخطأ يأتي من التحقق من صحة المعلمة ...ولكن لماذا يعتقد ASP.NET AJAX أن الأنواع الخاصة بي هي وظائف؟هل يفهم أحد التحقق من صحة النوع في MS AJAX؟

أعلم أنه يمكنني القيام بالحلول البديلة مثل الاتصال HtmlPage.Window.Eval("...") وتمرير تكامل JS الخاص بي كسلاسل، لكنني لا أريد القيام بذلك.أريد تمرير نوع .NET حقيقي كمعلمة الحالة.

هل كانت مفيدة؟

المحلول

لقد وجدت نظرة عامة جيدة على هذا هنا, ، ولكن يبدو أن هذه النظرة العامة تغطي كل السيناريوهات باستثناء السيناريو الذي ذكرته.أتساءل عما إذا كان من الممكن القيام بذلك لأن كائنات جافا سكريبت هي في الواقع وظائف (أكثر أو أقل).

ماذا لو كتبت دالة مجمعة يمكنها إنشاء كائن الحالة باستخدام سلسلة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top