Broken XML docu link when implementing interface
hello,
please consider following minimal code example:
namespace classlibrary
{
public class class : ivalueprovider { public int value { { return 0; } } } [contractclass(typeof(valueprovidercontract))] public interface ivalueprovider { int value { get; } } [contractclassfor(typeof(ivalueprovider))] abstract class valueprovidercontract : ivalueprovider { int ivalueprovider.value { { contract.ensures(contract.result<int>() >= 0); return 0; } } }
}
in project settings, enabled "emit contracts xml file". in general feature works , it. unfortunately, example above, there seems problem in generated xml docu file. member documentation of class.value getter looks this:
<member name="p:classlibrary.class.value"> <getter> <ensures inheritedfrom="m:classlibrary.ivalueprovider.get_value" inheritedfromtypename="ivalueprovider" csharp="result >= 0" vb="result >= 0">result >= 0</ensures> </getter> </member>
when xml docu file used sandcastle generate class reference documentation, following warning appears:
c:\program files (x86)\ewsoftware\sandcastle file builder\sandcastlehelpfilebuilder.targets(38,3): warning : buildassembler : warning : resolvereferencelinkscomponent: [p:classlibrary.class.value] unknown reference link target 'm:classlibrary.ivalueprovider.get_value'.
the link "m:classlibrary.ivalueprovider.get_value" seems wrong. sandcastle generates broken link when creating in docu. think should rather "p:classlibrary.ivalueprovider.value".
what think, issue in ccdocgen or sandcastle?
thanks, stefan
hi
looks duplicate of this:
https://social.msdn.microsoft.com/forums/en-us/2766c8c7-f7a6-4585-8ac8-024b26f702fa/ccdocgen-reference-link-problems-with-inheritedfrom?forum=codecontracts
this should fixed in latest shfb releases.
kind regards,
michael
DevLabs > Code Contracts
Comments
Post a Comment