Serilog: рдореВрд▓ рд░реВрдк рд╕реЗ JSON.NET рдЧрддрд┐рд╢реАрд▓ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ (JObject)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдордИ 2013  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: serilog/serilog

рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ IDestructuringPolicy рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
;)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕рднреА 13 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдЗрд╕реЗ IDestructuringPolicy рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдХреЛрдбрдмреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░рд╕рд░реА рдирдЬрд╝рд░ рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ (рдпрд╣рд╛рдВ https://github.com/serilog/serilog/blob/master/src/Serilog/Parameters/PropertyValueConverter.cs?source=c#L112) рдХрд┐ PropertyValueConverter рдкрд╣рд▓реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ (рд╕рднреА JToken s IEnumerable ) рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрднреА рднреА IDestructuringPolicy рд╕рд╛рде рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдореИрдВ _рдерд┐рдВрдХ_ рд╢рд╛рдпрдж IDestructuringPolicy рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗ рд░рд╣рд╛ рд╣реВрдВ (рдкрд╣рд▓реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рд░рд╣рд╛ рд╣реВрдВ) рдПрдХ рд░рд╛рд╕реНрддрд╛ рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдореЗрдВ рдХреЗрд╡рд▓ 2 рдорд┐рдирдЯ рдмрд┐рддрд╛рдП рдХреЛрдбред

рдореИрдВрдиреЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ... рд╕рдВрдХреЗрдд рдХрд╛ рдПрдХ рд╕реНрддрд░ рдЬреЛрдбрд╝рдХрд░ред

рдореИрдВрдиреЗ JObjectWrapper рдирд╛рдордХ рдПрдХ рд╡рд░реНрдЧ рдЬреЛрдбрд╝рд╛ рдЬреЛ IEnumerable рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ JObject рд▓рдкреЗрдЯрддрд╛ рд╣реВрдВред рдЕрдм рдореЗрд░рд╛ IDestructuringPolicy рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рджреБрдирд┐рдпрд╛ рдлрд┐рд░ рд╕реЗ рдПрдХ рдЦреБрд╢рд╣рд╛рд▓ рдЬрдЧрд╣ рд╣реИред

@kkozmic рдпрд╣ рдХреИрд╕рд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕реАрдорд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ? рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░? рдЪреАрдпрд░реНрд╕ :)

рдареАрдХ рд╣реИ, рдпрд╣ рдПрдХ рдмреБрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ :) рдпрд╣ рдореБрдЭреЗ рд╡рд╣ рд╕реНрдерд╛рди рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред

рдирдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рд╢рд╛рдпрдж?

public interface ISequenceConversionPolicy
{
   bool TryConvertToSequence(object value, ILogEventPropertyValueFactory propertyValueFactory, out SequenceValue result);
}

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢рд╛рдпрдж:

public interface IDictionaryConversionPolicy

:)

рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреЛрдИ рдкреАрдЖрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рдЗрдЪреНрдЫреБрдХ рд╣реИ рддреЛ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИред рд╕рднреА рдЗрдирдкреБрдЯ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! :)

@kkozmic рдХрд┐рд╕реА рднреА рдореМрдХреЗ рдкрд░ рдореИрдВ рдЖрдкрдХреЗ IDestructuringPolicy (рдЬреЛ рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ?

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рд╡рд╣ рдХреЛрдб рдирд╣реАрдВ рд╣реИред

рдордВрдЧрд▓рд╡рд╛рд░ 03 рдлрд░рд╡рд░реА 2015 рдХреЛ 4:38:45 рдмрдЬреЗ рд╣реИрд░реА рдореИрдХрдЗрдВрдЯрд╛рдпрд░ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@kkozmic https://github.com/kkozmic рдХреЛрдИ рднреА рдореМрдХрд╛ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ
рдЖрдкрдХреА рдЖрдИрдбреАрд╕реНрдЯреНрд░рдХреНрдЪрд░рд┐рдВрдЧ рдкреЙрд▓рд┐рд╕реА (рд╡рд╣ рдЬреЛ рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ)?

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/serilog/serilog/issues/30#issuecomment -72500600ред

371 рдЗрд╕реЗ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐рдд рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИ, рд▓реЗрдХрд┐рди "2.0" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдмрд┐рд▓реНрдб 1.4.168 рдЙрд╕ рд╕реАрдорд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдЕрдЬреАрдм рдмрдирд╛ рджрд┐рдпрд╛; рдПрдХ _Serilog.Extras.JObject_ рдпрд╛ рдРрд╕рд╛ рд╣реА рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддрд╛ рд╣реИ :-)

рдзрдиреНрдпрд╡рд╛рдж @Jaben рдЗрд╕реЗ рд╢реНрд░реЗрд╖реНрда

рдЕрдЪреНрдЫрд╛!

@nblumhardt рдпрд╣ рдХрдорд╛рд▓ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

fernandezjose picture fernandezjose  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

grokky1 picture grokky1  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mpb27 picture mpb27  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sicollins picture sicollins  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tleylan picture tleylan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ