public override void Initializing(InitializingContentContext context) { var fieldInfos = _drivers.SelectMany(x => x.GetFieldInfo()).ToArray(); var parts = context.ContentItem.Parts; foreach (var contentPart in parts) { foreach (var partFieldDefinition in contentPart.PartDefinition.Fields) { var fieldTypeName = partFieldDefinition.FieldDefinition.Name; var fieldInfo = fieldInfos.FirstOrDefault(x => x.FieldTypeName == fieldTypeName); if (fieldInfo != null) { var storage = _fieldStorageProviderSelector .GetProvider(partFieldDefinition) .BindStorage(contentPart, partFieldDefinition); storage = new FieldStorageEventStorage(storage, partFieldDefinition, contentPart, _fieldStorageEvents); var field = fieldInfo.Factory(partFieldDefinition, storage); contentPart.Weld(field); } } } }