Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Swagger 6.0.0-rc1-final在Swagger UI上的模型架构中分配默认请求数据_C#_Swagger Ui_Swashbuckle - Fatal编程技术网

C# 使用Swagger 6.0.0-rc1-final在Swagger UI上的模型架构中分配默认请求数据

C# 使用Swagger 6.0.0-rc1-final在Swagger UI上的模型架构中分配默认请求数据,c#,swagger-ui,swashbuckle,C#,Swagger Ui,Swashbuckle,请帮助我在Swagger UI上使用带有C#的Swagger 6.0.0实现模型模式的默认请求数据。重做此问题的答案以使其更清楚 1) 您将需要创建一个RequestExampleAttribute类,该类只保留与您发送的链接类似的示例类类型 2) 使用RequestExampleAttribute修饰操作方法: [RequestExample(typeof(MyRequestExample))] 3) MyRequestExample是从模型派生的一个简单类,只是它的所有属性都由构造函数中的

请帮助我在Swagger UI上使用带有C#的Swagger 6.0.0实现模型模式的默认请求数据。

重做此问题的答案以使其更清楚

1) 您将需要创建一个RequestExampleAttribute类,该类只保留与您发送的链接类似的示例类类型

2) 使用RequestExampleAttribute修饰操作方法:

[RequestExample(typeof(MyRequestExample))]
3) MyRequestExample是从模型派生的一个简单类,只是它的所有属性都由构造函数中的示例值填充

4) 在链接中创建操作筛选器

5) 在操作筛选器中,查找属性(应仅为一个或无):

8) 检查它是否有效。。。如果没有,请继续执行步骤9

9) 如果它不是从…[0]读取的。例如,它是从属性架构读取的,因此您需要修改所有属性:

context.SchemaRegistry.Definitions[0].Properties[x].Value.Example
这只是一个字典键/值对,键中有属性名。我在代码中所做的是循环遍历字典键,然后使用regex从步骤#6中创建的序列化实例中提取值。即

因此,当您在字典中循环时,第一个键将是“prop1”,例如,因此您可以使用regex拉取“prop1”:[string],然后将该字符串复制到值中。例如,prop

希望您不需要这样做,因为成功的返回模型从“容易”的位置读取要修改的内容,所以希望请求也将从“容易”的位置提取


现在有意义了吗?

@Urao从哪里获取int和string?对于步骤7,context.SchemaRegistry.Definitions[0]。Example=oExample;,双方都是反对的对象。这部分不起作用?您可能不需要执行8/9。context.SchemaRegistry.Definitions[0]。属性[x]。Value.Ex‌​这也是一个对象。哦,对不起。。。我在调试器中查找,您可以执行context.SchemaRegistry.Definitions.First()。。。。(使用System.Linq)。。。步骤9也一样,如果你需要走那么远的话。@Urao在我最初对响应示例的响应中,主要示例是从位置1读取的,但其他示例是从位置2读取的,因为你可以有多个,但根据请求,你只能有一个,所以我猜它将从位置1读取。7点停下来试试。如果它没有从那里读到,那么继续读8/9。@Urao,对我有用。是否确实已将该属性放在该方法上?如果您有多个未放置属性的控制器/方法,则该属性将为null。@Urao context.apiscription.GetActionAttributes()中的内容是什么?这一切都对我有用。启用“第一次机会异常”以查看异常是什么。
object oExample = Activator.CreateInstance(exampleAttr.ExampleType);

context.SchemaRegistry.Definitions[0].Example = oExample;
context.SchemaRegistry.Definitions[0].Properties[x].Value.Example
{
  "prop1" : "value1"
}