我打算创建一个基于 JObject 的不可变类。
要求之一是将对象直接反序列化到我的新自定义类上,就像我们对 JObject 所做的那样。
我已经实现了 GetEnumerator 和 Add 方法来启用集合初始化程序。
代码如下所示
public sealed class ImmutableJObject : IEnumerable
{
readonly jObject jObeject;
public ImmutableJObject(params object[] content)
{
this.jObject = new jObject(content);
}
public IEnumerator GetEnumerator()
{
return ((IEnumerable)jObject).GetEnumerator();
}
public void Add(string propertyName, JToken value)
{
this.jObject.Add(propertyName, value);
}
}
只有在使用集合初始化程序时才能使 Add 方法可访问?
由于本质上是不可变的,我不希望 Add 方法公开。但是,它看起来需要公开才能启用集合初始化程序
提前谢谢!