} // End of ImplDeserializeEnumerable (...) protected virtual Object ImplDeserializeObject( IValueUnit objectVu, IHierarchicalMetadataSerializationContext context) { IValueUnit objCtxtLvl = null; ISerializable <IValueUnit> serMgr = null; ValueDomObjectSerializationManagerCollection serMgrColl = null; ObjectSerializationManagerDescr serMgrDescr = null; String typeName = null; IValueItem valueItem = null; if ((objCtxtLvl = context.Hierarchy.Peek() as IValueUnit) == null) { return(null); } if ((valueItem = objCtxtLvl ["SerializationManager"] as IValueItem) == null) { return(null); } if (valueItem.Value == null) { return(null); } if ((typeName = valueItem.Value.ToString()) == null) { return(null); } if ((serMgrColl = ValueDomObjectSerializationManagerCollection.Singleton) == null) { return(null); } if ((serMgrDescr = serMgrColl [typeName]) == null) { return(null); } return((serMgr = serMgrDescr.SerializationManager) == null ? null : serMgr.Deserialize(objectVu, context)); } // End of ImplDeserializeObject (...)
protected virtual Boolean ImplDeserializeItem <ContextType> ( out Object retVal, Object item, Func <IValueItemBase> getCurrentContextDlg, ContextType context) where ContextType : ISerializationContext { retVal = null; //Type itemType = null; //NumericStringValue numericString = null; IConvertibleString cnvStr = null; ISerializable <IValueUnit> serMgr = null; ValueDomObjectSerializationManagerCollection serMgrColl = null; ObjectSerializationManagerDescr serMgrDescr = null; IValueUnit subCtxtLvl = null; IValueUnit subUnit = null; String typeName = null; IValueItem valueItem = null; if (item == null) { retVal = null; } else if (ImplIsBuiltinType(item.GetType())) { retVal = item; } //else if ( ImplIsString ( item.GetType () ) ) // if ( (itemType = ImplGetItemType ( context )) == null ) // retVal = item; // else if ( itemType == typeof ( String ) ) // retVal = item; // else // retVal = ImpConvertToType ( item, itemType ); //else if ( (numericString = item as NumericStringValue) != null ) // retVal = ImpConvertToType ( numericString, ImplGetItemType ( context ) ); else if (ImplIsString(item.GetType())) { retVal = ImpConvertToType(item, ImplGetItemType(context)); } else if ((cnvStr = item as IConvertibleString) != null) { retVal = ImpConvertToType(cnvStr, ImplGetItemType(context)); } else if ((subUnit = item as IValueUnit) == null) { return(false); } //propValue = pd.GetValue ( InitDto ); //if ( _DeserializeEnumerable ( ref propValue, pd, valueItem.Value, context ) ) // continue; //else // propValue = valueItem.Value; else if (getCurrentContextDlg == null) { return(false); } else if ((subCtxtLvl = getCurrentContextDlg() as IValueUnit) == null) { return(false); } else if ((valueItem = subCtxtLvl ["SerializationManager"] as IValueItem) == null) { return(false); } else if (valueItem.Value == null) { return(false); } else if ((typeName = valueItem.Value.ToString()) == null) { return(false); } else if ((serMgrColl = ValueDomObjectSerializationManagerCollection.Singleton) == null) { return(false); } else if ((serMgrDescr = serMgrColl [typeName]) == null) { return(false); } else if ((serMgr = serMgrDescr.SerializationManager) == null) { return(false); } else { retVal = serMgr.Deserialize(subUnit, context); } return(true); } // End of ImplDeserializeItem (...)