שימוש ב-COM מתוך .NET

שימוש ב-COM מתוך .NET

שלום. אולי תוכלו לעזור. הבעיה: כיצד "לצרוך" web service מתוך קוד ASP ישן בעזרת dotnet. תיאור: בנינו קוד dotnet על בסיס wsdl. נוצר webreference וכו'. הכל עובד. עכשיו אנו צריכים לתת לו ממשק COM ולחשוף אותו לטובת קוד ASP ישן. מה שהכי חשוב זה שקוד ה-ASP יקבל את האובייקטים של C# שנוצרו, ולא רק strings כלליים. השתמשנו במאפיין: ComVisible(true) מעל כל class ו-method שרצינו. השגיאה שקיבלנו ב-browser היא: Microsoft VBScript runtime error '800a01a8' Object required: 'ItayDavid.WebReferen' /vpbx/1.asp, line 11 אתן פרטים נוספים לפי הצורך. השאלה בנתיים היא האם מישהו ניסה לעשות פרוייקט מעין זה והאם הצלחתם להשיג תוצאות? תודה
 
עדכון זהו כנראה TLB

מסתבר שהבעיה שלנו היא כנראה הגדרה לא מספיקה ב-TLB. לקחתי את ה-TLB שנוצר לתוך ה-object browser של VB6 ושם אני רואה את האובייקטים שלי אבל בלי המתודות והproperties שלהם. מכאן אני מניח ש-dotnet לא ייצר אותם כמו שצריך. (כנראה הוא נוצרו בממשק IUnkown. יכול להיות?) אז מה עושים עכשיו? (אני מבין שאם מדובר ב-ASP, אפשר "לכפר" על החסרון הנ"ל ע"י הגדרות Object ב-global.asa אבל אני לא בטוח. הייתכן?) ושוב תודה
 
התקדמות נוספת

OK כמו שחשבתי: כשאני פותח את ה-TLB ב-OLE/COM object viewer (של Visual studio 6) אני רואה שהקלאסים שלי מוגדרים בצורה "כללית". מה שאני כנראה צריך זה early binding שלהם כנראה באמצעות attributes כלשהם. פה אני צריך את עזרתכם. מקווה שהשאלה הרבה יותר ממוקדת עכשיו. תודה.
 
אוקי לינק טוב

אבל חיפושים בגוגל אני עושה כבר בערך 5 שעות
אני מנסה להתמקד. מה שאני צריך עכשיו זה באיזה attributes להשתמש על מנת לחשוף את ה-class כמו שהוא בלי צורך להגדיר לו interface, והכל ב-early binding כלומר שקוד ASP ידע לבד איזה type מחזירה כל method. השאלה שלי ברורה יותר עכשיו אני מקווה? ה-attributes שאני צריך נמצאים כנראה ב: System.Runtime.InteropServices Namespace רק שאין לי מושג באיזה מהם להשתמש. נושא נוסף הוא נושא ה-GUID שהבנתי שמומלץ להשתמש בו כדי ליצור תאימות לגרסאות עתידיות רק לא בדיוק ברור לי מתי עלולה להיווצר חוסר תאימות אם לא משתמשים בו. בדוגמה הספציפית שלי, כל גרסה חדשה של המוצר אני מעדכן את ה-DLL ב-assembly cache ועושה restart ל-IIS. האם אמורה להיות פה בעיה של types ישנים עם GUID שונה?
 
../images/Emo208.gif

רגע לפני שאני חוזר לצלול בגוגל, מישהו יודע באיזה attributes אני אומר להשתמש? תודה
 
למעלה