ذكرت على Twitter أنه يجب أن يكون التنفيذ واضحًا إلى حد ما عبر IDestructuringPolicy
؛)
كنت أحاول الحصول على هذا العمل عبر IDestructuringPolicy
لكنني أخشى أنه لن ينجح.
يبدو أن نظرة سريعة عبر قاعدة الكود تشير (هنا https://github.com/serilog/serilog/blob/master/src/Serilog/Parameters/PropertyValueConverter.cs؟source=c#L112) أن PropertyValueConverter
أولاً يعامل الكائنات على أنها مجموعة (كل JToken
s هي IEnumerable
) وبالتالي لا يكلف نفسه عناء التحقق من IDestructuringPolicy
.
أعتقد أن إعطاء IDestructuringPolicy
أولوية أعلى (التحقق من ذلك أولاً ، ثم الرجوع إلى السلوك الافتراضي) قد يوفر مخرجًا ، لكن قد أكون مخطئًا تمامًا ، لقد أمضيت دقيقتين فقط في النظر إلى هذا الشفرة.
لقد أنشأت حلاً سريعًا في الوقت الحالي عن طريق ... إضافة مستوى من المراوغة.
لقد أضفت فصلًا يسمى 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 صباحًا Harry McIntyre [email protected]
كتب:
kkozmic https://github.com/kkozmic أي فرصة يمكنني إلقاء نظرة عليها
IDestructuringPolicy (الذي يعمل مع الغلاف)؟-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub
https://github.com/serilog/serilog/issues/30#issuecomment -72500600.
يزيل الإصدار 1.4.168 القيود التي جعلت هذا الأمر محرجًا ؛ أحب أن أرى _Serilog.Extras.JObject_ أو ما شابه ذلك يستفيد منه :-)
شكرا Jaben لتسمير هذا!
لطيف - جيد!
nblumhardt هذا رائع ، شكرًا!
التعليق الأكثر فائدة
https://github.com/destructurama/json-net