Можно ли дополнить Intellisense для библиотеки типов COM для отображения сводных описаний членов?

У меня есть проект консольного приложения .NET 8.0, C# 12.0, который имеет ссылку COM на Adobe Illustrator 2024 Type Library. Описания членов и параметров не отображаются во всплывающих подсказках Intellisense для объектов, предоставляемых этой библиотекой. Можно ли дополнить проект соответствующим XML-файлом, содержащим сводные описания участников?

У меня есть длинные беседы с

Я создал файл-заглушку документации, Interop.Illustrator.xml соответствующий файлу Interop.Illustrator.dll, помещенному в тот же выходной каталог \bin\Debug\net8.0-windows\Interop.Illustrator.dll. Но Intellisense не отображает описания. Например, во время разработки при наведении курсора на Application введите в объявлении Application app;, отображается interface Illustrator.Application во всплывающей подсказке. И он отображает {System._ComObject} во время выполнения, когда он остановлен для отладки.

<?xml version = "1.0" encoding = "utf-8" ?>
<doc>
    <assembly>
        <name>Interop.Illustrator</name>
    </assembly>
    <members>
        <member name = "T:Illustrator.Application">
            <summary>
                The Adobe® Illustrator® application object, referenced using the pre-defined global app object, which contains all other Illustrator objects.
            </summary>
        </member>
        <member name = "P:Illustrator.Application.ActiveDocument">
            <summary>
                The active (frontmost) document in Illustrator.
            </summary>
        </member>
        </member>
    </members>
</doc>

Сборка, Interop.Illustrator, Application Декомпилирована

using System.Runtime.InteropServices;

namespace Illustrator;

[ComImport]
[CoClass(typeof(ApplicationClass))]
[Guid("95CD20AA-AD72-11D3-B086-0010A4F5C335")]
public interface Application : _Application {
}

Старая печальная история 25 лет stackoverflow.com/questions/7012045/… технически возможно создать XML-файл, используемый .NET, из библиотеки типов (поскольку в Illustrator есть вспомогательные строки), но в . СЕТЬ.

Simon Mourier 17.05.2024 08:36
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
84
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Создание Interop.Illustrator.xml и копирование его в папку \obj\Debug\<TargetFramework>\Interop.Illustrator.xml (т. е. туда, где также копируется DLL библиотеки ссылочных типов, Interop.Illustrator.dll), позволит Intellisense работать в том же проекте.

Вот фрагмент документации:

<?xml version = "1.0" encoding = "utf-8" ?>
<doc>
    <assembly>
        <name>Interop.Illustrator</name>
    </assembly>
    <members>
        <member name = "T:Illustrator.Application">
            <summary>
                The Adobe® Illustrator® application object, referenced using the pre-defined global app object, which contains all other Illustrator objects.
            </summary>
        </member>
        <member name = "P:Illustrator._Application.ActiveDocument">
            <summary>
                The active (frontmost) document in Illustrator.
            </summary>
        </member>
        <member name = "P:Illustrator._Application.BrowserAvailable">
            <summary>
                If true, a web browser is available.
            </summary>
        </member>
    </members>
</doc>
``

Другие вопросы по теме