سؤال

لدي مشكلة غريبة إلى حد ما. أقوم بتصدير واجهة من مكتبة C# إلى com. لقد قمت بتمكين إعداد مشروع "التسجيل مع COM" ، بحيث يقوم باستدعاء tlbexp.exe لصنع نوع libs.

نحن نستخدم حالة الإبل على أسماء الأسلوب لدينا ، ولاحظت أن مكتبة النوع المصدرة تغير هذه الطريقة التي تتزامن مع اسم الفصل إلى حالة Pascal ...

على سبيل المثال

interface IFoo
{
void randomClass()
}

class RandomClass
{
}

يحدد IFOO الذي تم تصديره في النوع lib IFOO-> RandomClass () بدلاً من IFOO-> RandomClass ()

أي أفكار حول ما الذي يسبب هذا وكيفية إيقافه؟

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

المحلول

نظرًا لأن COM غير حساس للحالة ، فإن كل من "Randomclass" و "RandomClass" هما نفس الرمز في جدول مكتبة الإخراج. (هذا جزء من السبب في أن إرشادات .NET توصي باسكالكاسينج لأسماء الفصول والأساليب.)

سيكون الشخص الذي يتم اختياره هو الأول الذي ينبعث منه برنامج التحويل البرمجي ، وهذا غير محدد إلى حد ما من وجهة نظر المبرمج!

يمكنك اختيار واحد أو آخر ، باستخدام TLBEXP /names المعلمة ، ولكن كلا الأغلفة لا تستطيع التعايش في المكتبة.

لاستخدام ملف أسماء TLBEXP ، يمكنك ببساطة إنشاء ملف مع قائمة معرفات ، واحدة لكل سطر:

RandomClass
SomeOtherIdentifier

ثم تسميها مثل ذلك:

tlbexp MyAssembly.dll /names=MyNames.txt

سيقوم TLBEXP بعد ذلك باستخدام إصدار الرمز المحدد في ملف الأسماء.

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