internal static object ConvertPSObjectToOriginalType(PSObject psObject, int remoteServerVersion, Task.TaskVerboseLoggingDelegate writeVerbose) { if (psObject == null) { throw new ArgumentNullException("psObject"); } Type type = MonadCommand.ResolveType(psObject); if (remoteServerVersion >= Server.E15MinVersion) { if (psObject.Members["SerializationData"] == null || psObject.Members["SerializationData"].Value == null) { if (writeVerbose != null) { writeVerbose(Strings.VerboseSerializationDataNotExist); } } else { try { return(ProxyHelper.TypeConvertor.ConvertFrom(psObject, type, null, true)); } catch (Exception ex) { if (writeVerbose != null) { writeVerbose(Strings.VerboseFailedToDeserializePSObject(ex.Message)); } } } } return(MockObjectInformation.TranslateToMockObject(type, psObject)); }
public object Clone() { DataObjectProfile dataObjectProfile = new DataObjectProfile(this.Name, this.Type, this.Retriever, this.Validator); if (PSConnectionInfoSingleton.GetInstance().Type != OrganizationType.Cloud) { dataObjectProfile.DataObject = ((this.DataObject is ICloneable) ? ((ICloneable)this.DataObject).Clone() : this.DataObject); } else if (this.DataObject != null) { ConfigurableObject configurableObject = this.DataObject as ConfigurableObject; if (configurableObject != null) { ConfigurableObject configurableObject2 = MockObjectInformation.CreateDummyObject(configurableObject.GetType()) as ConfigurableObject; configurableObject2.propertyBag = (configurableObject.propertyBag.Clone() as PropertyBag); dataObjectProfile.DataObject = configurableObject2; } else { dataObjectProfile.DataObject = this.DataObject; } } return(dataObjectProfile); }