C# 如何在JsonPatch中使用IObjectAdapter?
我试图防止在调用C# 如何在JsonPatch中使用IObjectAdapter?,c#,.net,json-patch,C#,.net,Json Patch,我试图防止在调用patch.ApplyTo(对象,适配器)时修补DTO的某些属性。我目前的计划是在要忽略的属性上放置一个自定义属性,并且使用该适配器,仅当操作中使用的路径不包含应忽略的属性名称时,才允许操作通过。例如 class CustomAdapter : IObjectAdapter { public void Add(Operation operation, object objectToApplyTo) { if (pathIsValid(operati
patch.ApplyTo(对象,适配器)
时修补DTO的某些属性。我目前的计划是在要忽略的属性上放置一个自定义属性,并且使用该适配器,仅当操作中使用的路径不包含应忽略的属性名称时,才允许操作通过。例如
class CustomAdapter : IObjectAdapter
{
public void Add(Operation operation, object objectToApplyTo)
{
if (pathIsValid(operation.path)) {
// Actually do the adding somehow
}
}
}
也许这是一个愚蠢的问题,但我找不到任何关于如何进行实际添加部分的信息。事实上,我找不到任何关于这个(IObjectAdapter)应该如何与JsonPatch一起使用的参考,除了有一个重载来传递适配器之外
有什么方法可以调用任何给定操作的默认实现吗
operation.Apply()
存在,但它需要一个适配器作为第二个参数——JsonPatch的“默认适配器”是什么?还是有更好的/内置的方法来完全解决这个问题?以下是我最终解决这个问题的方式
[HttpPatch("profile")]
public async Task<IActionResult> Update([FromBody]JsonPatchDocument<User> userPatch)
{
string[] validFields = new[] { "/name" };
if (userPatch.Operations.Where(o => !validFields.Contains(o.path)).Count() > 0)
{
// invalid field
}
[HttpPatch(“配置文件”)]
公共异步任务更新([FromBody]JsonPatchDocument userPatch)
{
字符串[]validFields=new[]{“/name”};
if(userPatch.Operations.Where(o=>!validFields.Contains(o.path)).Count()>0)
{
//无效字段
}
所以我根本没有使用IObjectAdapter