Как показать свойство возвращает копию (т.е. является неизменным) - PullRequest
0 голосов
/ 27 ноября 2018

Возьмем следующий фрагмент в качестве примера:

public class JsonHelper
{
    private readonly JsonSerializerSettings _serializerSettings;

    public JsonSerializerSettings Settings
    {
        get //Settings of JsonHelper should be immutable, that's why 'get' does not return the field _serializerSettings
        {
            return new JsonSerializerSettings() 
            {
                DateTimeZoneHandling = DateTimeZoneHandling.Utc,
            };
        }
    }

    public JsonHelper()
    {
        _serializerSettings = Settings; 
    }
}

Я не хочу, чтобы JsonSerializerSettings был изменяемым извне, но я хочу иметь возможность предлагать такие же настройки в сценариях, где яне может напрямую использовать JsonHelper.

Есть ли какой-либо способ сообщить пользователю этого класса, что он не может сделать следующее и ожидать ожидаемого результата?

var instance = new JsonHelper();
instance.Settings.DateTimeZoneHandling = DateTimeZoneHandling.Local;

Или это единственный способ создать метод с именем GetCopyOfSettings()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...