小编The*_*Yur的帖子

c#方法参数的自定义属性 - 它是如何工作的?

我想了解这个特例如何运作.这是从msdn文章中解释INotifyPropertyChanged接口的解释(https://msdn.microsoft.com/query/dev12.query?appId=Dev12IDEF1&l=EN-US&k=k%28System.ComponentModel.INotifyPropertyChanged%29;k%28TargetFrameworkMoniker -.NETFramework,版本%3Dv4.5%29; k%28DevLang-csharp%29&rd = true) 在此输入图像描述

正如在标记行中所说的那样,有一种方法可以拦截方法调用以替换值而不是实际的值作为参数?我想知道这样做的代码是什么样的.我知道如何使用为属性和其他类成员设置的属性,但这个用例对我来说并不清楚.

谢谢.

.net c# custom-attributes

7
推荐指数
1
解决办法
1532
查看次数

全局错误处理程序,包括 Model Binder 错误

我正在开发一个 AspNet Core 3.1 web-api 项目,该项目正在由 PenTest 机构进行测试,当不正确的输入数据导致包含有关项目代码内部信息的响应时,他们会标记情况,如下所示:

\n
{\n  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",\n  "title": "One or more validation errors occurred.",\n  "status": 400,\n  "traceId": "00-371d845d720a4f4c8ad3d618e4386125-7086a0b4fb30614c-00",\n  "errors": {\n    "$.flags": [\n      "The JSON value could not be converted to System.Int32. Path: $.flags | LineNumber: 0 | BytePositionInLine: 47."\n    ]\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

因此,我们决定用中性的内容更改“errors/$.flags”属性的消息,例如“输入数据不正确”。

\n

我通过提供自定义JsonConverter< int >属性类来解决这个特殊情况,并且它可以很好地装饰适当的模型属性。另一个类似的问题是空集合元素导致此类响应,我通过为输入端点参数上的复杂类提供自定义模型绑定器(IModelBinder接口的实现)来修复。

\n

该项目有很多端点和输入模型类,因此提供自定义 JsonConverters 或模型绑定器看起来无效且不面向未来,因为每个新端点的输入都需要配备某种解决方案。所以这里的问题是 \xe2\x80\x94 是否可能有某种全局错误处理程序来覆盖模型绑定器错误?中间件中的标准 aspnet core 错误处理程序无法处理模型绑定器错误,因为它们在实际调用操作之前发生在操作调用逻辑中。

\n

或者可能有一种方法可以配置System.Text.Json功能,为绑定错误时抛出的各种JsonException提供自定义错误消息?

\n

error-handling model-binding asp.net-core jsonconverter

3
推荐指数
1
解决办法
1151
查看次数