Интересно, как работают эти XML-ссылки, я просто не понимаю, почему они работают или почему они не работают, и я ничего не нашел об этом.
Вот пример:
type
TOuterClass= class
strict private
type
TLogger = class
public
/// <summary>adds a log entry</summary>
/// <param name="Msg">text to log</param>
procedure Log(const Msg: string);
end;
strict private
FLogger: TLogger;
public
/// <summary>adds a log entry</summary>
/// <param name="Msg">text to log</param>
/// <remarks>just calls <see cref="TOuterClass.TLogger.Log" />
/// </remarks>
procedure Log(const Msg: string);
property Logger: TLogger read FLogger;
end;
Ссылка в комментарии TOuterClass.Log не работает. Delphi XE5 просто думает об этом, а затем отказывается.
Другой довольно простой пример:
Unit MyUnit
type
/// <summary>MyType Comment</summary>
TMyType = reference to procedure;
/// <param name="MyTypeParam"><see cref="MyUnit.TMyType" /></param>
procedure MyProcedure(MyTypeParam: TMyType);
Опять же, эта ссылка не работает. Интересная вещь в этом: если вы просто закомментируете комментарий xml, то Delphi автоматически создает только тот же текст ссылки ( "MyUnit.TMyType" ), и он работает! Это меня действительно сбивает с толку.
В чем именно эти ссылки могут ссылаться, какие соглашения следует выполнять, чтобы заставить его работать, и к чему они не могут привязываться?
Официальная документация довольно короткая:
<see> Reference to a specific type, symbol, or identifier
Если это имеет значение: я использую Delphi XE5, но я был бы признателен за то, как это работает в любой версии Delphi. Я бы даже оценил примеры ссылок, которые действительно работают вообще (пожалуйста, включите вашу версию Delphi), возможно, это поможет выявить механику, стоящую за ней.
Изменить 25.08.2014:
Я начинаю думать, что эти ссылки ссылаются на фактические файлы документации html, которые в моем случае не существуют, потому что у меня нет каталога, определенного для них. Я просто делаю XML-комментарии, чтобы получить подсказки в среде Delphi. Кто-нибудь может это подтвердить?