【发布时间】:2018-04-28 03:00:37
【问题描述】:
我正在尝试创建一个 JObject 的扩展类,它是不可变的。
如果我创建一个像下面这样的类,它可以防止实际的 JObject 被修改吗?
public class ImmutableJObejct: JObject
{
public readonly JObject JObject;
public ImmutableJObejct(JObject jObject)
{
this.JObject = jObject;
}
}
哪种方法是正确的? 我不应该从 JOBject 扩展代码并实现我需要的每个方法吗?
【问题讨论】:
-
这将使引用成为只读的,而不是对象实例本身。您不能直接分配给 JObject 字段,但您可以调用它的 Add 方法并更改值。
-
目前没有实现。您的问题与 How to make Newtonsoft.Json.Linq.JObject immutable? 重复,它链接到请求此功能的未解决问题:Support freezing a JToken #468
-
感谢您的参考,我找不到提到的问题
标签: c# immutability