是否可以增强 COM 类型库的 Intellisense 以显示成员摘要描述?

问题描述 投票:0回答:1

我有一个 .NET 8.0、C# 12.0 控制台应用程序项目,其中包含对

Adobe Illustrator 2024 Type Library
的 COM 引用。对于此库公开的对象,成员和参数描述不会显示在 Intellisense 工具提示中。是否可以使用包含成员描述摘要的相应 XML 文件来扩充项目?

我与 ChatGPT 和 Gemini 进行了很长的对话,试图解决这个问题,两个 AI 都表明这确实是可能的。然而,到目前为止,还没有任何效果。因此,问题。这实际上可能吗?如果是这样,这将节省大量时间。

我创建了一个存根文档文件,

Interop.Illustrator.xml
,对应于放置在同一输出目录中的
Interop.Illustrator.dll
\bin\Debug\net8.0-windows\Interop.Illustrator.dll
。但智能感知并没有显示这些描述。例如,在设计时,将鼠标悬停在
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 {
}
c# visual-studio com intellisense xml-documentation
1个回答
0
投票

创建

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>
``
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.