2010-09-09 4 views
2

У меня есть библиотека .NET, видимая в COM, и она вызывается из приложения vb6.Возможно ли достичь бинарной совместимости в библиотеке .NET?

Если я добавлю некоторые методы и выпущу новую версию (но не удаляю и не изменяю подписи существующих методов), я хотел бы просто установить ее на производственной машине и заставить ее работать. Однако, похоже, такой подход не работает; Мне нужно перекомпилировать приложение vb6.

Есть ли способ достичь этого?

+0

То, что вы просите за это намного проще, чем бинарной совместимости. Вы поздно связываетесь с 'IDispatch'. –

+0

Черт, ты прав, опоздал. В любом случае, вопрос достаточно ясен. – raven

ответ

6

Вы можете явно использовать атрибут Guid на ваших COM-интерфейсов и классов, а атрибут DispId на ваших методов, полей и свойств:

[Guid("0E213759-1679-4CD1-8322-566CF76928EF")] 
public class SampleClass 
{ 
    [DispId(8)] 
    public void MyMethod() {} 
} 
+0

Это все, что мне нужно? У меня есть Guid, но не DisId. Попробуй это как можно скорее, спасибо! – raven

+0

Как это получилось? Я в подобной ситуации. – Jammer

+0

Извините, Jammer, до сих пор не видел твой комментарий. Для будущих ссылок это работало как шарм. – raven

 Смежные вопросы

  • Нет связанных вопросов^_^