Cómo vincular documentación de terceros en la creación de documentación de Sandcastle C#
Estoy creando la documentación para un complemento que he escrito, para una aplicación de terceros, que tiene su propia API que utilizo en mi complemento. La API está documentada en otro lugar (sitio web) y sé cómo generar URLs para cada uno de los tipos de API.
Durante la construcción de la documentación de mi complemento, SandCastle naturalmente se queja de la falta de tipos de API de terceros, ya que no están definidos en mi ensamblado de complemento y forman parte del ensamblado de API de la aplicación host a la que he referenciado en mi proyecto de complemento.
Me gustaría saber cómo puedo configurar SandCastle para resolver los tipos faltantes a la URL correcta e incluirlos en los archivos .chm o en el sitio web como hipervínculos.
SandCastle ya hace esto para todos los tipos de dotnet y los redirecciona a la documentación de MSDN correctamente. SandCastle parece tener resolutores de URL incorporados para estas fuentes conocidas internamente, pero no veo ninguna forma de extender eso y agregar mi propio resolutor.
davy.ai
Para configurar SandCastle para resolver los tipos faltantes de una API de terceros y generar enlaces a la URL correcta, debes crear un resolvedor de reflexión personalizado. Este resolvedor instruye a SandCastle para resolver los tipos faltantes a su URL correspondiente en la API de terceros. Aquí te explico cómo puedes crear un resolvedor de reflexión personalizado en SandCastle:
Añade una nueva clase al proyecto y hereda de la clase Microsoft.Ddue.Tools.Reflection.Resolver.Resolver2.
Sobrescribe el método Resolve de la clase Resolver2 y añade código para resolver el tipo faltante a la URL correspondiente en la API de terceros. A continuación, te muestro un ejemplo de código:
Una vez que hayas creado el ensamblaje personalizado del resolvedor, haz referencia a él en tu proyecto de complemento en Visual Studio.
Por último, configura SandCastle para usar el resolvedor de reflexión personalizado añadiendo la siguiente propiedad al archivo de proyecto de SandCastle:
Reemplaza CustomResolverNamespace, CustomResolverClass y CustomResolverAssemblyName con los valores adecuados para tu resolvedor personalizado.
Siguiendo estos pasos, SandCastle utilizará ahora el resolvedor de reflexión personalizado para resolver los tipos faltantes en la documentación de tu complemento a su URL correspondiente en la API de terceros.