在架构定义中找不到类型名称
Cannot find type name in schema definitions
我已经开始在 Web 中使用 Swashbuckle API。 None 我的类型在我的 Swagger UI 中正确呈现。在每种方法上,我都会看到类似这样的内容(未渲染):
<span class="strong">Typename is not defined!</span>
所以我进行了调查,并在我的许多方法的 Swagger 定义文件中找到了这个:
{$ref: "#/definitions/Typename", vendorExtensions: {}}
typeName
存在于定义列表中...但它是小写的。它们都是小写的,但是所有 $ref
都是大写的。
我该如何解决这个问题?
赏金编辑:可根据要求提供更多信息,我只是不确定还有什么相关的。
[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
public class SwaggerConfig
{
public static void Register()
{
var thisAssembly = typeof(SwaggerConfig).Assembly;
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "MyNamespace.Api");
c.IncludeXmlComments(Path.Combine(
AppDomain.CurrentDomain.GetDataDirectoryPath(),
"MyNamespace.Api.XML"));
})
.EnableSwaggerUi();
}
}
检查您的项目设置。听起来你的路径可能是错误的。以下是我使用的设置。
...swaggerDocsConfig.IncludeXmlComments(GetXmlCommentsPath());
还有
/// <summary>
/// This is where the generated XML meta documentation are stored.
/// Editable in project settings
/// </summary>
private static string GetXmlCommentsPath()
{
return string.Format(@"{0}\bin\MrGreen.Game.Service.XML", AppDomain.CurrentDomain.BaseDirectory);
}
我几乎是偶然发现的。由于我还不明白的原因,我需要让我的类型名称以小写字母开头,而其他人似乎没有。
c.SchemaId(type =>
{
var name = type.Name;
name = $"{ name.Substring(0,1).ToLower() }{ name.Substring(1) }";
});
我已经开始在 Web 中使用 Swashbuckle API。 None 我的类型在我的 Swagger UI 中正确呈现。在每种方法上,我都会看到类似这样的内容(未渲染):
<span class="strong">Typename is not defined!</span>
所以我进行了调查,并在我的许多方法的 Swagger 定义文件中找到了这个:
{$ref: "#/definitions/Typename", vendorExtensions: {}}
typeName
存在于定义列表中...但它是小写的。它们都是小写的,但是所有 $ref
都是大写的。
我该如何解决这个问题?
赏金编辑:可根据要求提供更多信息,我只是不确定还有什么相关的。
[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
public class SwaggerConfig
{
public static void Register()
{
var thisAssembly = typeof(SwaggerConfig).Assembly;
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "MyNamespace.Api");
c.IncludeXmlComments(Path.Combine(
AppDomain.CurrentDomain.GetDataDirectoryPath(),
"MyNamespace.Api.XML"));
})
.EnableSwaggerUi();
}
}
检查您的项目设置。听起来你的路径可能是错误的。以下是我使用的设置。
...swaggerDocsConfig.IncludeXmlComments(GetXmlCommentsPath());
还有
/// <summary>
/// This is where the generated XML meta documentation are stored.
/// Editable in project settings
/// </summary>
private static string GetXmlCommentsPath()
{
return string.Format(@"{0}\bin\MrGreen.Game.Service.XML", AppDomain.CurrentDomain.BaseDirectory);
}
我几乎是偶然发现的。由于我还不明白的原因,我需要让我的类型名称以小写字母开头,而其他人似乎没有。
c.SchemaId(type =>
{
var name = type.Name;
name = $"{ name.Substring(0,1).ToLower() }{ name.Substring(1) }";
});