WebApiTestClient是基於微軟HelpPage一個客戶端調試擴展工具,用來做接口調試比較方便。但是對返回值的自定義說明還是有缺陷的。有園友寫過一篇文章,說可以通過對類進行注釋,然后通過在IHttpActionResult上標記ResponseType(typeof(class))即可。
[ResponseType(typeof(CreditRuleDetails))]
public IHttpActionResult GetCreditRuleList(int ruleType = 1)
{
try
{
}
catch (Exception exception)
{
}
}
CreditRuleDetails類
public class CreditRuleDetails
{
/// <summary>
/// 規則Id
/// </summary>
public int RuleId{get;set;}
/// <summary>
/// 規則名稱
/// </summary>
public int RuleName{get;set;}
}
但發現返回值的Description中沒有summary描述。

弄了半天,也沒發現是什么問題,后來轉變了下思路。改用C#特性來做,然后更改了下ModelDescriptionGenerator.cs的方法實現。
private ModelDescription GenerateComplexTypeModelDescription(Type modelType) { ComplexTypeModelDescription complexModelDescription = new ComplexTypeModelDescription { Name = ModelNameHelper.GetModelName(modelType), ModelType = modelType, Documentation = CreateDefaultDocumentation(modelType) }; GeneratedModels.Add(complexModelDescription.Name, complexModelDescription); bool hasDataContractAttribute = modelType.GetCustomAttribute<DataContractAttribute>() != null; PropertyInfo[] properties = modelType.GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo property in properties) { if (ShouldDisplayMember(property, hasDataContractAttribute)) { ParameterDescription propertyModel = new ParameterDescription { Name = GetMemberName(property, hasDataContractAttribute) }; if (DocumentationProvider != null) { //======以下是添加的========= DescriptionAttribute myattribute = (DescriptionAttribute)Attribute.GetCustomAttribute(property, typeof(DescriptionAttribute)); if (myattribute != null) { propertyModel.Documentation = myattribute.Description; } //========以上是添加的=========== else { propertyModel.Documentation = DocumentationProvider.GetDocumentation(property); } }
然后將類的屬性標記為Description。
[Description("規則名稱")] public string RuleName { get; set; }
最后結果:

希望能對大家有幫助!
