public PSMemberSet(string name, IEnumerable<PSMemberInfo> members) { this.inheritMembers = true; if (string.IsNullOrEmpty(name)) { throw PSTraceSource.NewArgumentException("name"); } base.name = name; if (members == null) { throw PSTraceSource.NewArgumentNullException("members"); } this.internalMembers = new PSMemberInfoInternalCollection<PSMemberInfo>(); foreach (PSMemberInfo info in members) { if (info == null) { throw PSTraceSource.NewArgumentNullException("members"); } this.internalMembers.Add(info.Copy()); } this.members = new PSMemberInfoIntegratingCollection<PSMemberInfo>(this, emptyMemberCollection); this.properties = new PSMemberInfoIntegratingCollection<PSPropertyInfo>(this, emptyPropertyCollection); this.methods = new PSMemberInfoIntegratingCollection<PSMethodInfo>(this, emptyMethodCollection); }
public PSMemberSet(string name) { this.inheritMembers = true; if (string.IsNullOrEmpty(name)) { throw PSTraceSource.NewArgumentException("name"); } base.name = name; this.internalMembers = new PSMemberInfoInternalCollection<PSMemberInfo>(); this.members = new PSMemberInfoIntegratingCollection<PSMemberInfo>(this, emptyMemberCollection); this.properties = new PSMemberInfoIntegratingCollection<PSPropertyInfo>(this, emptyPropertyCollection); this.methods = new PSMemberInfoIntegratingCollection<PSMethodInfo>(this, emptyMethodCollection); }
protected override void AddAllProperties <T>( ManagementBaseObject wmiObject, PSMemberInfoInternalCollection <T> members) { if (wmiObject.SystemProperties == null) { return; } foreach (PropertyData systemProperty in wmiObject.SystemProperties) { members.Add(new PSProperty(systemProperty.Name, (Adapter)this, (object)wmiObject, (object)systemProperty) as T); } }
private ReadOnlyPSMemberInfoCollection <PSMemberInfo> GetMatchMembers() { if (WildcardPattern.ContainsWildcardCharacters(this._property)) { return(this._inputObject.Members.Match(this._property, PSMemberTypes.All)); } PSMemberInfoInternalCollection <PSMemberInfo> members = new PSMemberInfoInternalCollection <PSMemberInfo>(); PSMemberInfo member = this._inputObject.Members[this._property]; if (member != null) { members.Add(member); } return(new ReadOnlyPSMemberInfoCollection <PSMemberInfo>(members)); }
protected override void AddAllMethods <T>( ManagementBaseObject wmiObject, PSMemberInfoInternalCollection <T> members) { if (!typeof(T).IsAssignableFrom(typeof(PSMethod))) { return; } foreach (BaseWMIAdapter.WMIMethodCacheEntry member in BaseWMIAdapter.GetInstanceMethodTable(wmiObject, true).memberCollection) { if ((object)members[member.Name] == null) { Adapter.tracer.WriteLine("Adding method {0}", (object)member.Name); members.Add(new PSMethod(member.Name, (Adapter)this, (object)wmiObject, (object)member) as T); } } }
internal PSMemberSet(string name, PSObject mshObject) { this.inheritMembers = true; if (string.IsNullOrEmpty(name)) { throw PSTraceSource.NewArgumentException("name"); } base.name = name; if (mshObject == null) { throw PSTraceSource.NewArgumentNullException("mshObject"); } this.constructorPSObject = mshObject; this.internalMembers = mshObject.InstanceMembers; this.members = new PSMemberInfoIntegratingCollection<PSMemberInfo>(this, typeMemberCollection); this.properties = new PSMemberInfoIntegratingCollection<PSPropertyInfo>(this, typePropertyCollection); this.methods = new PSMemberInfoIntegratingCollection<PSMethodInfo>(this, typeMethodCollection); }
private PSMemberInfoInternalCollection<PSMemberInfo> GetInternalMembersFromAdapted() { PSMemberInfoInternalCollection<PSMemberInfo> internals = new PSMemberInfoInternalCollection<PSMemberInfo>(); if (this.psObject.isDeserialized) { if (this.psObject.adaptedMembers != null) { foreach (PSMemberInfo info in this.psObject.adaptedMembers) { internals.Add(info.Copy()); } } return internals; } foreach (PSMemberInfo info2 in this.psObject.InternalAdapter.BaseGetMembers<PSMemberInfo>(this.psObject.ImmediateBaseObject)) { internals.Add(info2.Copy()); } return internals; }
protected override PSMemberInfoInternalCollection <T> GetMembers <T>( object obj) { PSMemberInfoInternalCollection <T> members1 = new PSMemberInfoInternalCollection <T>(); if (typeof(T).IsAssignableFrom(typeof(PSProperty))) { this.DoAddAllProperties <T>(obj, members1); } PSObject.dotNetInstanceAdapter.AddAllMethods <T>(obj, members1, true); if (DotNetAdapter.IsTypeParameterizedProperty(typeof(T))) { PSMemberInfoInternalCollection <PSParameterizedProperty> members2 = new PSMemberInfoInternalCollection <PSParameterizedProperty>(); PSObject.dotNetInstanceAdapter.AddAllProperties <PSParameterizedProperty>(obj, members2, true); foreach (PSParameterizedProperty parameterizedProperty in (PSMemberInfoCollection <PSParameterizedProperty>)members2) { members1.Add(parameterizedProperty as T); } } return(members1); }
internal static PSMemberInfoInternalCollection <T> Match <T>( PSMemberInfoInternalCollection <T> memberList, string name, WildcardPattern nameMatch, PSMemberTypes memberTypes) where T : PSMemberInfo { PSMemberInfoInternalCollection <T> internalCollection = new PSMemberInfoInternalCollection <T>(); if (memberList == null) { throw MemberMatch.tracer.NewArgumentNullException(nameof(memberList)); } if (string.IsNullOrEmpty(name)) { throw MemberMatch.tracer.NewArgumentException(nameof(name)); } if (nameMatch == null) { object hashedMember = memberList.hashedMembers[(object)name]; if (hashedMember != null) { PSMemberInfo member = (PSMemberInfo)memberList.members[((int?)hashedMember).Value]; if ((member.MemberType & memberTypes) != (PSMemberTypes)0) { internalCollection.Add(member as T); } } return(internalCollection); } foreach (T member in (PSMemberInfoCollection <T>)memberList) { PSMemberInfo psMemberInfo = (PSMemberInfo)member; if (nameMatch.IsMatch(psMemberInfo.Name) && (psMemberInfo.MemberType & memberTypes) != (PSMemberTypes)0) { internalCollection.Add(psMemberInfo as T); } } return(internalCollection); }
private PSMemberInfoInternalCollection <PSMemberInfo> GetInternalMembersFromAdapted() { PSMemberInfoInternalCollection <PSMemberInfo> internalCollection = new PSMemberInfoInternalCollection <PSMemberInfo>(); if (this.psObject.isDeserialized) { if (this.psObject.adaptedMembers != null) { foreach (PSMemberInfo adaptedMember in (PSMemberInfoCollection <PSPropertyInfo>) this.psObject.adaptedMembers) { internalCollection.Add(adaptedMember.Copy()); } } } else { foreach (PSMemberInfo member in (PSMemberInfoCollection <PSMemberInfo>) this.psObject.InternalAdapter.BaseGetMembers <PSMemberInfo>(this.psObject.ImmediateBaseObject)) { internalCollection.Add(member.Copy()); } } return(internalCollection); }
private static PSMemberSet MaskDeserializedAndGetStandardMembers(PSObject so) { Diagnostics.Assert(so != null, "Shell object to process cannot be null"); var typeNames = so.InternalTypeNames; Collection <string> typeNamesWithoutDeserializedPrefix = Deserializer.MaskDeserializationPrefix(typeNames); if (typeNamesWithoutDeserializedPrefix == null) { return(null); } TypeTable typeTable = so.GetTypeTable(); if (typeTable == null) { return(null); } PSMemberInfoInternalCollection <PSMemberInfo> members = typeTable.GetMembers <PSMemberInfo>(new ConsolidatedString(typeNamesWithoutDeserializedPrefix)); return(members[TypeTable.PSStandardMembers] as PSMemberSet); }
private void Process_GetEvent_Types_Ps1Xml(string filePath, ConcurrentBag <string> errors) { typesInfo.Add(new SessionStateTypeEntry(filePath)); string typeName = null; PSMemberInfoInternalCollection <PSMemberInfo> typeMembers = null; PSMemberInfoInternalCollection <PSMemberInfo> memberSetMembers = null; HashSet <string> newMembers = new HashSet <string>(StringComparer.OrdinalIgnoreCase); #region System.Diagnostics.Eventing.Reader.EventLogConfiguration typeName = @"System.Diagnostics.Eventing.Reader.EventLogConfiguration"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSPropertySet( @"DefaultDisplayPropertySet", new List <string> { "LogName", "MaximumSizeInBytes", "RecordCount", "LogMode" }), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion System.Diagnostics.Eventing.Reader.EventLogConfiguration #region System.Diagnostics.Eventing.Reader.EventLogRecord typeName = @"System.Diagnostics.Eventing.Reader.EventLogRecord"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSPropertySet( @"DefaultDisplayPropertySet", new List <string> { "TimeCreated", "ProviderName", "Id", "Message" }), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion System.Diagnostics.Eventing.Reader.EventLogRecord #region System.Diagnostics.Eventing.Reader.ProviderMetadata typeName = @"System.Diagnostics.Eventing.Reader.ProviderMetadata"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); // Process regular members. newMembers.Add(@"ProviderName"); AddMember( errors, typeName, new PSAliasProperty(@"ProviderName", @"Name", conversionType: null), typeMembers, isOverride: false); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSPropertySet( @"DefaultDisplayPropertySet", new List <string> { "Name", "LogLinks" }), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion System.Diagnostics.Eventing.Reader.ProviderMetadata #if !CORECLR #region Microsoft.PowerShell.Commands.GetCounter.CounterSet typeName = @"Microsoft.PowerShell.Commands.GetCounter.CounterSet"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process regular members. newMembers.Add(@"Counter"); AddMember( errors, typeName, new PSAliasProperty(@"Counter", @"Paths", conversionType: null), typeMembers, isOverride: false); #endregion Microsoft.PowerShell.Commands.GetCounter.CounterSet #region Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample typeName = @"Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSPropertySet( @"DefaultDisplayPropertySet", new List <string> { "Path", "InstanceName", "CookedValue" }), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample #region Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet typeName = @"Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); // Process regular members. newMembers.Add(@"Readings"); AddMember( errors, typeName, new PSScriptProperty( @"Readings", GetScriptBlock(@"$strPaths = """" foreach ($ctr in $this.CounterSamples) { $strPaths += ($ctr.Path + "" :"" + ""`n"") $strPaths += ($ctr.CookedValue.ToString() + ""`n`n"") } return $strPaths"), setterScript: null, shouldCloneOnAccess: true), typeMembers, isOverride: false); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSPropertySet( @"DefaultDisplayPropertySet", new List <string> { "Timestamp", "Readings" }), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet #endif // Update binder version for newly added members. foreach (string memberName in newMembers) { PSGetMemberBinder.TypeTableMemberAdded(memberName); } }
/// <summary> /// Get the matched PSMembers /// </summary> /// <returns></returns> private ReadOnlyPSMemberInfoCollection<PSMemberInfo> GetMatchMembers() { if (!WildcardPattern.ContainsWildcardCharacters(_property)) { PSMemberInfoInternalCollection<PSMemberInfo> restuls = new PSMemberInfoInternalCollection<PSMemberInfo>(); PSMemberInfo member = _inputObject.Members[_property]; if (member != null) { restuls.Add(member); } return new ReadOnlyPSMemberInfoCollection<PSMemberInfo>(restuls); } ReadOnlyPSMemberInfoCollection<PSMemberInfo> members = _inputObject.Members.Match(_property, PSMemberTypes.All); Dbg.Assert(members != null, "The return value of Members.Match should never be null."); return members; }
/// <summary> /// Serializes properties from collection /// </summary> /// <param name="propertyCollection"> /// Collection of properties to serialize /// </param> /// <param name="name"> /// Name for enclosing element tag /// </param> /// <param name="depth"> /// depth to which each property should be /// serialized /// </param> private void SerializeProperties( PSMemberInfoInternalCollection<PSPropertyInfo> propertyCollection, string name, int depth) { Dbg.Assert(propertyCollection != null, "caller should validate the parameter"); if (propertyCollection.Count == 0) return; foreach (PSMemberInfo info in propertyCollection) { PSPropertyInfo prop = info as PSPropertyInfo; Dbg.Assert(prop != null, "propertyCollection should only have member of type PSProperty"); object value = AutomationNull.Value; //PSObject throws GetValueException if it cannot //get value for a property. try { value = prop.Value; } catch (GetValueException) { continue; } //Write the property WriteOneObject(value, prop.Name, depth); } }
/// <summary> /// Serializes properties of PSObject /// </summary> private void WritePSObjectProperties(PSObject source, int depth) { Dbg.Assert(source != null, "caller should validate the information"); depth = GetDepthOfSerialization(source, depth); //Depth available for each property is one less --depth; Dbg.Assert(depth >= 0, "depth should be greater or equal to zero"); if (source.GetSerializationMethod(null) == SerializationMethod.SpecificProperties) { PSMemberInfoInternalCollection<PSPropertyInfo> specificProperties = new PSMemberInfoInternalCollection<PSPropertyInfo>(); foreach (string propertyName in source.GetSpecificPropertiesToSerialize(null)) { PSPropertyInfo property = source.Properties[propertyName]; if (property != null) { specificProperties.Add(property); } } SerializeProperties(specificProperties, CustomSerializationStrings.Properties, depth); return; } foreach (PSPropertyInfo prop in source.Properties) { Dbg.Assert(prop != null, "propertyCollection should only have member of type PSProperty"); object value = AutomationNull.Value; //PSObject throws GetValueException if it cannot //get value for a property. try { value = prop.Value; } catch (GetValueException) { WritePropertyWithNullValue(_writer, prop, depth); continue; } //Write the property if (value == null) { WritePropertyWithNullValue(_writer, prop, depth); } else { WriteOneObject(value, prop.Name, depth); } } }
private void SerializeProperties(PSMemberInfoInternalCollection<PSPropertyInfo> propertyCollection, string name, int depth) { if (propertyCollection.Count != 0) { foreach (PSMemberInfo info in propertyCollection) { PSPropertyInfo info2 = info as PSPropertyInfo; object source = AutomationNull.Value; try { source = info2.Value; } catch (GetValueException) { continue; } this.WriteOneObject(source, info2.Name, depth); } } }
private void WritePSObjectProperties(PSObject source, int depth) { depth = GetDepthOfSerialization(source, depth); depth--; if (source.GetSerializationMethod(null) == SerializationMethod.SpecificProperties) { PSMemberInfoInternalCollection<PSPropertyInfo> propertyCollection = new PSMemberInfoInternalCollection<PSPropertyInfo>(); foreach (string str in source.GetSpecificPropertiesToSerialize(null)) { PSPropertyInfo member = source.Properties[str]; if (member != null) { propertyCollection.Add(member); } } this.SerializeProperties(propertyCollection, "Property", depth); } else { foreach (PSPropertyInfo info2 in source.Properties) { object obj2 = AutomationNull.Value; try { obj2 = info2.Value; } catch (GetValueException) { this.WritePropertyWithNullValue(this._writer, info2, depth); continue; } if (obj2 == null) { this.WritePropertyWithNullValue(this._writer, info2, depth); } else { this.WriteOneObject(obj2, info2.Name, depth); } } } }
private ReadOnlyPSMemberInfoCollection<PSMemberInfo> GetMatchMembers() { if (WildcardPattern.ContainsWildcardCharacters(this._property)) { return this._inputObject.Members.Match(this._property, PSMemberTypes.All); } PSMemberInfoInternalCollection<PSMemberInfo> members = new PSMemberInfoInternalCollection<PSMemberInfo>(); PSMemberInfo member = this._inputObject.Members[this._property]; if (member != null) { members.Add(member); } return new ReadOnlyPSMemberInfoCollection<PSMemberInfo>(members); }
protected abstract void DoAddAllProperties <T>( object obj, PSMemberInfoInternalCollection <T> members) where T : PSMemberInfo;
private void Process_TypesV3_Ps1Xml(string filePath, ConcurrentBag <string> errors) { typesInfo.Add(new SessionStateTypeEntry(filePath)); string typeName = null; PSMemberInfoInternalCollection <PSMemberInfo> typeMembers = null; PSMemberInfoInternalCollection <PSMemberInfo> memberSetMembers = null; HashSet <string> newMembers = new HashSet <string>(StringComparer.OrdinalIgnoreCase); #region System.Security.Cryptography.X509Certificates.X509Certificate2 typeName = @"System.Security.Cryptography.X509Certificates.X509Certificate2"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 3)); // Process regular members. newMembers.Add(@"EnhancedKeyUsageList"); AddMember( errors, typeName, new PSScriptProperty( @"EnhancedKeyUsageList", GetScriptBlock(@",(new-object Microsoft.Powershell.Commands.EnhancedKeyUsageProperty -argumentlist $this).EnhancedKeyUsageList;"), setterScript: null, shouldCloneOnAccess: true), typeMembers, isOverride: false); newMembers.Add(@"DnsNameList"); AddMember( errors, typeName, new PSScriptProperty( @"DnsNameList", GetScriptBlock(@",(new-object Microsoft.Powershell.Commands.DnsNameProperty -argumentlist $this).DnsNameList;"), setterScript: null, shouldCloneOnAccess: true), typeMembers, isOverride: false); newMembers.Add(@"SendAsTrustedIssuer"); AddMember( errors, typeName, new PSScriptProperty( @"SendAsTrustedIssuer", GetScriptBlock(@"[Microsoft.Powershell.Commands.SendAsTrustedIssuerProperty]::ReadSendAsTrustedIssuerProperty($this)"), GetScriptBlock(@"$sendAsTrustedIssuer = $args[0] [Microsoft.Powershell.Commands.SendAsTrustedIssuerProperty]::WriteSendAsTrustedIssuerProperty($this,$this.PsPath,$sendAsTrustedIssuer)"), shouldCloneOnAccess: true), typeMembers, isOverride: false); #endregion System.Security.Cryptography.X509Certificates.X509Certificate2 #region System.Management.Automation.Remoting.PSSenderInfo typeName = @"System.Management.Automation.Remoting.PSSenderInfo"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); // Process regular members. newMembers.Add(@"ConnectedUser"); AddMember( errors, typeName, new PSScriptProperty( @"ConnectedUser", GetScriptBlock(@"$this.UserInfo.Identity.Name"), setterScript: null, shouldCloneOnAccess: true), typeMembers, isOverride: false); newMembers.Add(@"RunAsUser"); AddMember( errors, typeName, new PSScriptProperty( @"RunAsUser", GetScriptBlock(@"if($null -ne $this.UserInfo.WindowsIdentity) { $this.UserInfo.WindowsIdentity.Name }"), setterScript: null, shouldCloneOnAccess: true), typeMembers, isOverride: false); #endregion System.Management.Automation.Remoting.PSSenderInfo #region System.Management.Automation.CompletionResult typeName = @"System.Management.Automation.CompletionResult"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"SerializationDepth", 1), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion System.Management.Automation.CompletionResult #region Deserialized.System.Management.Automation.CompletionResult typeName = @"Deserialized.System.Management.Automation.CompletionResult"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion Deserialized.System.Management.Automation.CompletionResult #region System.Management.Automation.CommandCompletion typeName = @"System.Management.Automation.CommandCompletion"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"SerializationDepth", 1), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion System.Management.Automation.CommandCompletion #region Deserialized.System.Management.Automation.CommandCompletion typeName = @"Deserialized.System.Management.Automation.CommandCompletion"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion Deserialized.System.Management.Automation.CommandCompletion #region Microsoft.PowerShell.Commands.ModuleSpecification typeName = @"Microsoft.PowerShell.Commands.ModuleSpecification"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"SerializationDepth", 1), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion Microsoft.PowerShell.Commands.ModuleSpecification #region Deserialized.Microsoft.PowerShell.Commands.ModuleSpecification typeName = @"Deserialized.Microsoft.PowerShell.Commands.ModuleSpecification"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion Deserialized.Microsoft.PowerShell.Commands.ModuleSpecification #region System.Management.Automation.JobStateEventArgs typeName = @"System.Management.Automation.JobStateEventArgs"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"SerializationDepth", 2), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion System.Management.Automation.JobStateEventArgs #region Deserialized.System.Management.Automation.JobStateEventArgs typeName = @"Deserialized.System.Management.Automation.JobStateEventArgs"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion Deserialized.System.Management.Automation.JobStateEventArgs #region System.Exception typeName = @"System.Exception"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"SerializationDepth", 1), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion System.Exception #region System.Management.Automation.Remoting.PSSessionOption typeName = @"System.Management.Automation.Remoting.PSSessionOption"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"SerializationDepth", 1), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion System.Management.Automation.Remoting.PSSessionOption #region Deserialized.System.Management.Automation.Remoting.PSSessionOption typeName = @"Deserialized.System.Management.Automation.Remoting.PSSessionOption"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion Deserialized.System.Management.Automation.Remoting.PSSessionOption #region System.Management.Automation.DebuggerStopEventArgs typeName = @"System.Management.Automation.DebuggerStopEventArgs"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 2)); // Process regular members. newMembers.Add(@"SerializedInvocationInfo"); AddMember( errors, typeName, new PSCodeProperty( @"SerializedInvocationInfo", GetMethodInfo(typeof(Microsoft.PowerShell.DeserializingTypeConverter), @"GetInvocationInfo"), setterCodeReference: null) { IsHidden = true }, typeMembers, isOverride: false); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 3); AddMember( errors, typeName, new PSNoteProperty(@"SerializationMethod", @"SpecificProperties"), memberSetMembers, isOverride: false); AddMember( errors, typeName, new PSNoteProperty(@"SerializationDepth", 2), memberSetMembers, isOverride: false); AddMember( errors, typeName, new PSPropertySet( @"PropertySerializationSet", new List <string> { "Breakpoints", "ResumeAction", "SerializedInvocationInfo" }), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion System.Management.Automation.DebuggerStopEventArgs #region Deserialized.System.Management.Automation.DebuggerStopEventArgs typeName = @"Deserialized.System.Management.Automation.DebuggerStopEventArgs"; typeMembers = _extendedMembers.GetOrAdd(typeName, GetValueFactoryBasedOnInitCapacity(capacity: 1)); // Process standard members. memberSetMembers = new PSMemberInfoInternalCollection <PSMemberInfo>(capacity: 1); AddMember( errors, typeName, new PSNoteProperty(@"TargetTypeForDeserialization", typeof(Microsoft.PowerShell.DeserializingTypeConverter)), memberSetMembers, isOverride: false); ProcessStandardMembers( errors, typeName, memberSetMembers, typeMembers, isOverride: false); #endregion Deserialized.System.Management.Automation.DebuggerStopEventArgs // Update binder version for newly added members. foreach (string memberName in newMembers) { PSGetMemberBinder.TypeTableMemberAdded(memberName); } }