Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / Serialization / ValueTypeFixupInfo.cs / 1305376 / ValueTypeFixupInfo.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ValueTypeFixupInfo ** ** Purpose: Information about an object required to do a value-type ** fixup. This includes the id of the containing object and the ** member info (if the containing body is an object or value type) ** or the array indices (if the containing body is an array.) ** ============================================================*/ namespace System.Runtime.Serialization { using System.Reflection; using System.Diagnostics.Contracts; internal class ValueTypeFixupInfo { //The id of the containing body. This could be a regular //object, another value type, or an array. For obvious reasons, //the containing body can never have both a FieldInfo and //an array index. private long m_containerID; //The FieldInfo into the containing body. This will only //apply if the containing body is a field info or another //value type. private FieldInfo m_parentField; //The array index of the index into the parent. This will only //apply if the containing body is an array. private int[] m_parentIndex; public ValueTypeFixupInfo(long containerID, FieldInfo member, int[] parentIndex) { //If both member and arrayIndex are null, we don't have enough information to create //a tunnel to do the fixup. if (member==null && parentIndex==null) { throw new ArgumentException(Environment.GetResourceString("Argument_MustSupplyParent")); } Contract.EndContractBlock(); BCLDebug.Trace("SER", "[ValueTypeFixupInfo.ctor]Creating a VTFI with Container ID: ", containerID, " and MemberInfo ", member); if (containerID==0 && member==null) { m_containerID = containerID; m_parentField = member; m_parentIndex = parentIndex; } //If the member isn't null, we know that they supplied a MemberInfo as the parent. This means //that the arrayIndex must be null because we can't have a FieldInfo into an array. if (member!=null) { if (parentIndex!=null) { throw new ArgumentException(Environment.GetResourceString("Argument_MemberAndArray")); } if (((((FieldInfo)member).FieldType).IsValueType) && containerID==0) { throw new ArgumentException(Environment.GetResourceString("Argument_MustSupplyContainer")); } } m_containerID=containerID; m_parentField = (FieldInfo)member; m_parentIndex = parentIndex; } public long ContainerID { get { return m_containerID; } } public FieldInfo ParentField { get { return m_parentField; } } public int[] ParentIndex { get { return m_parentIndex; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ValueTypeFixupInfo ** ** Purpose: Information about an object required to do a value-type ** fixup. This includes the id of the containing object and the ** member info (if the containing body is an object or value type) ** or the array indices (if the containing body is an array.) ** ============================================================*/ namespace System.Runtime.Serialization { using System.Reflection; using System.Diagnostics.Contracts; internal class ValueTypeFixupInfo { //The id of the containing body. This could be a regular //object, another value type, or an array. For obvious reasons, //the containing body can never have both a FieldInfo and //an array index. private long m_containerID; //The FieldInfo into the containing body. This will only //apply if the containing body is a field info or another //value type. private FieldInfo m_parentField; //The array index of the index into the parent. This will only //apply if the containing body is an array. private int[] m_parentIndex; public ValueTypeFixupInfo(long containerID, FieldInfo member, int[] parentIndex) { //If both member and arrayIndex are null, we don't have enough information to create //a tunnel to do the fixup. if (member==null && parentIndex==null) { throw new ArgumentException(Environment.GetResourceString("Argument_MustSupplyParent")); } Contract.EndContractBlock(); BCLDebug.Trace("SER", "[ValueTypeFixupInfo.ctor]Creating a VTFI with Container ID: ", containerID, " and MemberInfo ", member); if (containerID==0 && member==null) { m_containerID = containerID; m_parentField = member; m_parentIndex = parentIndex; } //If the member isn't null, we know that they supplied a MemberInfo as the parent. This means //that the arrayIndex must be null because we can't have a FieldInfo into an array. if (member!=null) { if (parentIndex!=null) { throw new ArgumentException(Environment.GetResourceString("Argument_MemberAndArray")); } if (((((FieldInfo)member).FieldType).IsValueType) && containerID==0) { throw new ArgumentException(Environment.GetResourceString("Argument_MustSupplyContainer")); } } m_containerID=containerID; m_parentField = (FieldInfo)member; m_parentIndex = parentIndex; } public long ContainerID { get { return m_containerID; } } public FieldInfo ParentField { get { return m_parentField; } } public int[] ParentIndex { get { return m_parentIndex; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InputLanguageManager.cs
- AttributeEmitter.cs
- LogStore.cs
- FileRecordSequenceHelper.cs
- XmlDictionaryReader.cs
- BaseCodeDomTreeGenerator.cs
- StatusBar.cs
- SocketElement.cs
- HwndHost.cs
- TabPage.cs
- AppDomainProtocolHandler.cs
- Wizard.cs
- WebPartCatalogAddVerb.cs
- XslException.cs
- SoapSchemaImporter.cs
- DispatchWrapper.cs
- ParamArrayAttribute.cs
- SystemWebSectionGroup.cs
- DataColumnCollection.cs
- TypeLibConverter.cs
- ResXResourceWriter.cs
- documentation.cs
- ConnectionModeReader.cs
- WorkflowMarkupSerializer.cs
- FactoryGenerator.cs
- DrawingVisualDrawingContext.cs
- EntityTemplateFactory.cs
- FormatControl.cs
- WindowsEditBox.cs
- SmiContext.cs
- PolicyManager.cs
- DataServiceKeyAttribute.cs
- PerformanceCounterCategory.cs
- RangeValidator.cs
- CompositeCollection.cs
- XNameTypeConverter.cs
- RotateTransform.cs
- XmlChildNodes.cs
- EnvelopedPkcs7.cs
- ConfigurationStrings.cs
- CachedCompositeFamily.cs
- DataBoundControlDesigner.cs
- GridViewDeleteEventArgs.cs
- OrderByQueryOptionExpression.cs
- TaskFormBase.cs
- BoundColumn.cs
- System.Data_BID.cs
- FixedSOMTextRun.cs
- SoapFault.cs
- TCPListener.cs
- FixedFlowMap.cs
- OleDbParameterCollection.cs
- XmlTypeMapping.cs
- ArgumentFixer.cs
- AuthenticationService.cs
- basevalidator.cs
- sapiproxy.cs
- Point3DKeyFrameCollection.cs
- ColumnMapCopier.cs
- PreProcessInputEventArgs.cs
- ColumnHeaderConverter.cs
- WebDescriptionAttribute.cs
- RouteParser.cs
- CharacterMetrics.cs
- ConfigurationValidatorBase.cs
- DataTransferEventArgs.cs
- Rotation3DKeyFrameCollection.cs
- ConfigurationLocation.cs
- OptimizedTemplateContent.cs
- _RequestCacheProtocol.cs
- QuaternionAnimation.cs
- CallInfo.cs
- AutomationPeer.cs
- TextRangeProviderWrapper.cs
- SqlFacetAttribute.cs
- PanelStyle.cs
- DynamicUpdateCommand.cs
- RouteItem.cs
- CodeRegionDirective.cs
- DataGridTextBoxColumn.cs
- ShutDownListener.cs
- TableLayoutRowStyleCollection.cs
- SerializationEventsCache.cs
- FormViewUpdatedEventArgs.cs
- EpmCustomContentWriterNodeData.cs
- ListenerElementsCollection.cs
- Vector3DAnimationBase.cs
- XmlExpressionDumper.cs
- XmlAttributeCollection.cs
- QueueProcessor.cs
- SerialPinChanges.cs
- Selector.cs
- AdjustableArrowCap.cs
- ConfigXmlComment.cs
- XamlClipboardData.cs
- VScrollBar.cs
- GridViewEditEventArgs.cs
- linebase.cs
- TrustSection.cs
- AlignmentYValidation.cs