public StillOneScriptCore.EntityModel.LngObjectsModel._Instance Convert(object value) { lock (LockObj) { if(value == null) { if (mNullInstance != null) { return mNullInstance; } } else { // disable once CanBeReplacedWithTryCastAndCheckForNull if(value is StillOneScriptCore.EntityModel.LngObjectsModel._Instance) { return value as StillOneScriptCore.EntityModel.LngObjectsModel._Instance; } if (mObjectCache.ContainsKey(value)) { return mObjectCache[value]; } } var tmpConvertor = GetConvertor(value); if (tmpConvertor == null) { return null; } var tmpOriginValue = value; if(value != null) { var tmpValType = value.GetType(); var tmpWrappedType = GetWrappingConvertor(tmpValType); if (tmpWrappedType != null) { value = Activator.CreateInstance(tmpWrappedType, new object[] { value }); } } var tmpResult = tmpConvertor.CreateInstance(value); if (value == null) { mNullInstance = tmpResult; } else { mObjectCache.Add(tmpOriginValue, tmpResult); var tmpIdenty = value as StillOneScriptCore.EntityModel.LngObjectsModel.Support.IIdenty; if(tmpIdenty != null) { tmpIdenty._Object = tmpResult; } } return tmpResult; } }
public StillOneScriptCore.EntityModel.LngObjectsModel._Instance CreateInstanceByExistingBox(StillOneScriptCore.EntityModel.LngObjectsModel.Support.Internal._P_BaseInstace box) { lock (LockObj) { var tmpInstance = new StillOneScriptCore.EntityModel.LngObjectsModel._Instance(); tmpInstance.Environment = this.Environment; if (box == null) { tmpInstance.AddSuperClass(this); } else { tmpInstance.AddSuperClass(this, box); } return tmpInstance; } }