Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CalendarKeyboardHelper.cs
- EqualityComparer.cs
- ObjectQuery_EntitySqlExtensions.cs
- ThreadLocal.cs
- EtwTrace.cs
- EventLog.cs
- Button.cs
- RuleRef.cs
- TextBox.cs
- InstanceNotFoundException.cs
- TextTrailingWordEllipsis.cs
- PassportIdentity.cs
- ConvertersCollection.cs
- TypeUtil.cs
- MutexSecurity.cs
- Vector.cs
- CodeSnippetCompileUnit.cs
- CornerRadius.cs
- MultipleViewPattern.cs
- SpecularMaterial.cs
- COM2PropertyDescriptor.cs
- BrowsableAttribute.cs
- BuildProvider.cs
- FormsIdentity.cs
- x509store.cs
- ConstraintConverter.cs
- DifferencingCollection.cs
- UIElementCollection.cs
- ParserStreamGeometryContext.cs
- RootBrowserWindow.cs
- DataGridViewComboBoxCell.cs
- Restrictions.cs
- DataAccessor.cs
- SymmetricAlgorithm.cs
- WebPartConnectionCollection.cs
- EditorAttributeInfo.cs
- ScriptReference.cs
- WebPartConnectionsCloseVerb.cs
- X509Chain.cs
- PriorityBinding.cs
- CollectionView.cs
- LongValidator.cs
- ColumnWidthChangingEvent.cs
- TempFiles.cs
- DispatcherOperation.cs
- FixedPageProcessor.cs
- BitmapCache.cs
- HwndHost.cs
- TypeDependencyAttribute.cs
- CheckableControlBaseAdapter.cs
- CommandBinding.cs
- ConfigurationManagerHelper.cs
- IdentitySection.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- BindingOperations.cs
- LabelAutomationPeer.cs
- ArgumentException.cs
- DataSetSchema.cs
- CommandManager.cs
- ServiceModelReg.cs
- XPathDocumentIterator.cs
- TextRange.cs
- NativeMethods.cs
- MemberBinding.cs
- SqlRecordBuffer.cs
- TextParaLineResult.cs
- WorkflowCommandExtensionItem.cs
- KeyFrames.cs
- PropertyIdentifier.cs
- QuerySubExprEliminator.cs
- ServiceDebugBehavior.cs
- TaskFactory.cs
- StringAnimationUsingKeyFrames.cs
- TextEndOfLine.cs
- AuthenticationModuleElementCollection.cs
- PinnedBufferMemoryStream.cs
- InfiniteTimeSpanConverter.cs
- PropertyBuilder.cs
- ComboBox.cs
- TextEndOfParagraph.cs
- FamilyTypefaceCollection.cs
- AuthorizationRuleCollection.cs
- TemplatedAdorner.cs
- HostedHttpTransportManager.cs
- BulletedListEventArgs.cs
- SqlBulkCopyColumnMappingCollection.cs
- DurationConverter.cs
- XmlWriterSettings.cs
- PixelShader.cs
- CharStorage.cs
- QuadraticBezierSegment.cs
- PolyLineSegment.cs
- InternalBufferOverflowException.cs
- ListDictionaryInternal.cs
- DbgCompiler.cs
- _WinHttpWebProxyDataBuilder.cs
- ValidationHelper.cs
- TraceHandler.cs
- SelectedDatesCollection.cs
- StylusEventArgs.cs