Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Runtime / Serialization / ValueTypeFixupInfo.cs / 1 / 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; 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) { 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 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")); } //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; } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Operators.cs
- PrefixQName.cs
- CodeSubDirectoriesCollection.cs
- WeakEventTable.cs
- ResponseBodyWriter.cs
- shaperfactoryquerycacheentry.cs
- XmlElementList.cs
- WebServiceHost.cs
- AnnotationResourceCollection.cs
- IsolatedStorageFileStream.cs
- InputLangChangeEvent.cs
- Zone.cs
- RelatedImageListAttribute.cs
- StaticSiteMapProvider.cs
- Array.cs
- SafePointer.cs
- MenuItemAutomationPeer.cs
- XmlCustomFormatter.cs
- NullableConverter.cs
- ProjectionNode.cs
- CodeDelegateCreateExpression.cs
- DelayLoadType.cs
- OLEDB_Util.cs
- ImageField.cs
- QueryCursorEventArgs.cs
- DescendantBaseQuery.cs
- VectorAnimation.cs
- FieldMetadata.cs
- AVElementHelper.cs
- Token.cs
- SHA1.cs
- ResourceReferenceKeyNotFoundException.cs
- ColorAnimationUsingKeyFrames.cs
- XmlConvert.cs
- KeyGestureValueSerializer.cs
- Quad.cs
- GenericRootAutomationPeer.cs
- StyleHelper.cs
- DbDeleteCommandTree.cs
- KeyManager.cs
- ListComponentEditorPage.cs
- MailAddress.cs
- Rules.cs
- AnnouncementEventArgs.cs
- Label.cs
- PropertyNames.cs
- BasicCellRelation.cs
- ZipIOLocalFileBlock.cs
- SQLGuid.cs
- Ticks.cs
- XsltContext.cs
- StylusPointPropertyInfoDefaults.cs
- HttpGetProtocolImporter.cs
- WmlMobileTextWriter.cs
- UiaCoreProviderApi.cs
- TripleDES.cs
- ArrayConverter.cs
- PerformanceCounterLib.cs
- WorkflowRuntimeSection.cs
- GeneralTransform.cs
- InvalidEnumArgumentException.cs
- Stacktrace.cs
- StorageComplexPropertyMapping.cs
- MessageDecoder.cs
- SqlDataSourceCommandEventArgs.cs
- TypeElement.cs
- RecordManager.cs
- ResourcesGenerator.cs
- StdValidatorsAndConverters.cs
- OdbcReferenceCollection.cs
- PartialTrustHelpers.cs
- InkCanvasSelectionAdorner.cs
- Parallel.cs
- BlobPersonalizationState.cs
- EmbeddedMailObject.cs
- XPathBuilder.cs
- Accessible.cs
- ElementMarkupObject.cs
- NavigationWindow.cs
- ReachUIElementCollectionSerializer.cs
- CroppedBitmap.cs
- IndicFontClient.cs
- errorpatternmatcher.cs
- Int64AnimationBase.cs
- XamlStream.cs
- CodeGeneratorOptions.cs
- BuiltInExpr.cs
- ReaderWriterLock.cs
- SystemEvents.cs
- InputBinding.cs
- MarshalByValueComponent.cs
- UserControlDesigner.cs
- DbModificationCommandTree.cs
- ControlParameter.cs
- RetrieveVirtualItemEventArgs.cs
- DrawingContextDrawingContextWalker.cs
- WebPartAddingEventArgs.cs
- SqlDataSourceSelectingEventArgs.cs
- RtfFormatStack.cs
- ThousandthOfEmRealPoints.cs