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