public override EventBeanWriter GetWriter(string[] properties) { if (_writablePropertyDescriptors == null) { InitializeWriters(); } var writers = new JsonEventBeanPropertyWriter[properties.Length]; for (var i = 0; i < properties.Length; i++) { writers[i] = GetInternalWriter(properties[i]); if (writers[i] == null) { return(null); } } return(new JsonEventBeanWriterPerProp(writers)); }
private void InitializeWriters() { var writeableProps = new List <EventPropertyDescriptor>(); var writeablePropsMap = new Dictionary <string, Pair <EventPropertyDescriptor, JsonEventBeanPropertyWriter> >(); foreach (var prop in PropertyDescriptors) { var field = _detail.FieldDescriptors.Get(prop.PropertyName); if (field == null) { continue; } var eventPropertyWriter = new JsonEventBeanPropertyWriter(_delegate, field); writeableProps.Add(prop); writeablePropsMap.Put( prop.PropertyName, new Pair <EventPropertyDescriptor, JsonEventBeanPropertyWriter>(prop, eventPropertyWriter)); } _propertyWriters = writeablePropsMap; _writablePropertyDescriptors = writeableProps.ToArray(); }