سؤال

لقد كتبت خدمة ويب بسيطة بلغة C# باستخدام SharpDevelop (التي حصلت عليها للتو وأحبها).

أراد العميل ذلك في VB، ولحسن الحظ هناك ميزة التحويل إلى VB.NET.إنه لشيء رائع.ترجم كل التعليمات البرمجية، ويبني.(لقد كنت رجل "المفكرة" لفترة طويلة، لذلك قد أبدو من الطراز القديم قليلاً.)

لكني أتلقى هذا الخطأ عندما أحاول تحميل الخدمة الآن.

Parser Error Message: Could not load type 'flightinfo.Soap' from assembly 'flightinfo'.

Source Error:

Line 1:  <%@ WebService Class="flightinfo.Soap,flightinfo" %>

لقد قمت بحذف الصناديق وأعدت بنائها، وبحثت في Google (وStackoverflow).لقد بحثت في ملفات المشروع بحثًا عن أي بقايا لـ C#.

أيه أفكار؟

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

المحلول

في VB.NET، تكون إعلانات مساحة الاسم مرتبطة بمساحة الاسم الافتراضية للمشروع.لذا، إذا تم تعيين مساحة الاسم الافتراضية للمشروع على X.Y، فكل شيء بينهما Namespace Z و End Namespace سيكون في مساحة الاسم X.Y.Z.في C# يجب عليك توفير اسم مساحة الاسم الكامل، بغض النظر عن مساحة الاسم الافتراضية للمشروع.لذا، إذا كان مشروع C# يحتوي على مساحة الاسم الافتراضية X.Y، فستظل ملفات CS تتضمن الامتداد namespace X.Y تصريح.بعد التحويل إلى VB، إذا ظلت مساحة الاسم الافتراضية وإعلانات مساحة الاسم في الملفات كما هي، فسينتهي بك الأمر مع الفئات في مساحة الاسم X.Y.X.Y.لذا، في حالتك، أصبحت فئة Soap الآن في مساحة الاسم Flightinfo.flightinfo.وبالتالي هناك ثلاثة حلول ممكنة:

  • قم بتغيير ملف asmx إلى

  • إزالة مساحة الاسم الافتراضية من المشروع

  • قم بإزالة إعلانات مساحة الاسم من ملفات vb

نصائح أخرى

<%@ WebService Class="flightinfo.Soap,flightinfo" %>

ما هو اسم صفك؟

قد يكون سبب المشكلة هو استخدام مشاريع VB.NET وC# لاصطلاحات تسمية مختلفة لتجميعات المشروع وكيفية استخدام مساحة اسم المشروع.على الأقل هذا هو المكان الذي سأبدأ فيه بالبحث.

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