codeEntityReference to Interface Method from Conceptual Content

Topics: Developer Forum, User Forum
Oct 20, 2008 at 5:25 PM
Edited Oct 20, 2008 at 5:27 PM
None of the following work:

<codeEntityReference qualifyHint="true">N:SER.Sertainty.Services.IEventingImportService.BeginEventingImport</codeEntityReference>

 <codeEntityReference 

 

qualifyHint="true">T:SER.Sertainty.Services.IEventingImportService.BeginEventingImport</codeEntityReference>

 

 <codeEntityReference 

 

qualifyHint="true">M:SER.Sertainty.Services.IEventingImportService.BeginEventingImport</codeEntityReference>

 

 <codeEntityReference 

 

qualifyHint="true">P:SER.Sertainty.Services.IEventingImportService.BeginEventingImport</codeEntityReference>

 

  

 

I can only get the following to work

<codeEntityReference qualifyHint="true">N:SER.Sertainty.Services</codeEntityReference>

 <codeEntityReference 

 

qualifyHint="true">T:SER.Sertainty.Services.IEventingImportService</codeEntityReference>

 

  

 

Any ideas what I'm doing wrong?

Coordinator
Oct 20, 2008 at 6:46 PM
Edited Oct 20, 2008 at 6:47 PM
Are they public?  Do they appear in the help file?  If not, they won't link to anything.  Check the build log.  Most likely you will see warnings that the references were not valid indicating that they weren't found in the reflection information.  Also, be sure you've applied the Sandcastle Styles patch (http://www.codeplex.com/SandcastleStyles) as it fixes some problems with the code entity reference element.

Eric
Oct 20, 2008 at 8:18 PM

Thanks the log gave me the clues I needed. It's an interface method for a WCF OperationContract and if I make it public it won't compile. The method does appear in the help file though. I have extracted the Sandcastle Styles patch to the May 2008 Sandcastle install folder.

The method is defined as follows:

[OperationContract(AsyncPattern = true, IsOneWay = false)]
IAsyncResult BeginEventingImport(uint languageId, uint speechType, List<Rules.Category> categories, ContactSegment requiredSegment, List<ContactSegment> segments, AsyncCallback callback, object state);

Near the top of the log I saw

Warn: ResolveReferenceLinksComponent2: Unknown reference link target 'M:SER.Sertainty.Services.IEventingImportService.BeginEventingImport'.

Near the end of the build log I saw

Info: BuildAssembler: Building topic

M:SER.Sertainty.Services.IEventingImportService.BeginEventingImport(System.UInt32,System.UInt32,System.Collections.Generic.List{SER.Sertainty.Rules.Category} ,SER.Sertainty.DataModel.ContactSegment,System.Collections.Generic.List {SER.Sertainty.DataModel.ContactSegment},System.AsyncCallback,System.Object)

So then I tried using the fully qualified method name with arguments inside the codeEntityReference

<codeEntityReference qualifyHint="true">
M:SER.Sertainty.Services.IEventingImportService.BeginEventingImport(System.UInt32,System.UInt32,System.Collections.Generic.List{SER.Sertainty.Rules.Category},SER.Sertainty.DataModel.ContactSegment,System.Collections.Generic.List{SER.Sertainty.DataModel.ContactSegment},System.AsyncCallback,System.Object)
</codeEntityReference>

And it works now! Thanks!