Преобразование CamelCaseText в CamelCaseNamingStrategy в Newtonsoft.Json - PullRequest
0 голосов
/ 11 октября 2019

Я недавно обновился до последней Newtonsoft.Json версии 12.0.2. Ранее я использовал более старую версию (11.0.2), и где-то посередине свойство StringEnumConverter.CamelCaseText устарело.

В соответствии с классом StringEnumConverter , "StringEnumConverter.CamelCaseText is obsolete. Set StringEnumConverter.NamingStrategy with CamelCaseNamingStrategy instead." В результате я внес следующие изменения в сценарии, в которых CamelCaseText == true:

// Deprecated approach
new StringEnumConverter() { CamelCaseText = true };

// New approach
new StringEnumConverter() { NamingStrategy = new CamelCaseNamingStrategy() };

Хотя это кажется простым,Я не уверен, как подходить к сценариям, где CamelCaseText == false. Я прочитал CamelCaseNamingStrategy класс , но не знаю, где бы я отключил верблюжий корпус. Я предполагаю, что мне нужно использовать класс стратегии именования, отличный от CamelCaseNamingStrategy, такой как DefaultNamingStrategy, но я не уверен, в чем разница в поведении этого класса.

Может кто-нибудь указать мне на документацию, объясняющую разницу, и / или помочь мне понять, какую стратегию именования использовать в этом случае?

// Deprecated approach
new StringEnumConverter() { CamelCaseText = false };

// New approach
new StringEnumConverter() { NamingStrategy = ? };

1 Ответ

0 голосов
/ 11 октября 2019

Вы можете просто сделать new StringEnumConverter() без изменения каких-либо свойств.

По умолчанию StringEnumConverter никоим образом не преобразует имена enum. Это объясняется в документах для устаревших StringEnumConverter.CamelCaseText, в которых указано:

Получает или задает значение, указывающее, должен ли написанный текст перечисления быть в регистре верблюдов. Значением по умолчанию является false.

Если вам необходимо установить значение NamingStrategy, вы можете установить его на null( значение по умолчанию ) или new DefaultNamingStrategy(). Любой из этих вариантов приведет к тому, что StringEnumConverter не изменит имена enum.

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