Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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.
//
// ==--==
/*============================================================
**
** 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ComplexTypeEmitter.cs
- CorrelationTokenInvalidatedHandler.cs
- AvTraceFormat.cs
- ArraySortHelper.cs
- TextParagraphView.cs
- SafeSystemMetrics.cs
- XmlSchemaComplexType.cs
- InfoCardSymmetricAlgorithm.cs
- SerialStream.cs
- ModelTreeEnumerator.cs
- Button.cs
- ErrorFormatterPage.cs
- LayoutEvent.cs
- NumberFunctions.cs
- DataContractSet.cs
- DataServiceCollectionOfT.cs
- WebPartMinimizeVerb.cs
- XsltFunctions.cs
- CapiHashAlgorithm.cs
- SQLGuid.cs
- CheckBoxField.cs
- DockingAttribute.cs
- CodeTryCatchFinallyStatement.cs
- KeyNotFoundException.cs
- TraceListener.cs
- StackSpiller.cs
- BinaryObjectInfo.cs
- HyperLink.cs
- EntityTypeEmitter.cs
- ObjectAnimationUsingKeyFrames.cs
- EditorZone.cs
- RoleService.cs
- ValueType.cs
- UniformGrid.cs
- EditorAttribute.cs
- AssociatedControlConverter.cs
- PromptEventArgs.cs
- WMIGenerator.cs
- SamlAttributeStatement.cs
- Table.cs
- RecognitionResult.cs
- IIS7UserPrincipal.cs
- WpfMemberInvoker.cs
- SequentialUshortCollection.cs
- RequestCacheManager.cs
- ResponseStream.cs
- CodeStatementCollection.cs
- KeyboardDevice.cs
- HotSpot.cs
- RemoteArgument.cs
- RectValueSerializer.cs
- TrackingProfileSerializer.cs
- Thickness.cs
- StrokeCollection.cs
- RadialGradientBrush.cs
- ParagraphVisual.cs
- WebBrowserUriTypeConverter.cs
- StringStorage.cs
- QilStrConcat.cs
- EntryIndex.cs
- SizeValueSerializer.cs
- XPathNodeList.cs
- SettingsContext.cs
- SafeArrayRankMismatchException.cs
- BrushValueSerializer.cs
- SqlProviderManifest.cs
- _Events.cs
- XmlComment.cs
- BitmapEffectInput.cs
- GeometryCollection.cs
- EnumCodeDomSerializer.cs
- SiteMembershipCondition.cs
- TransactionManager.cs
- ApplicationServicesHostFactory.cs
- Translator.cs
- TabItemWrapperAutomationPeer.cs
- EventDescriptor.cs
- EditorZoneBase.cs
- Lasso.cs
- WorkflowExecutor.cs
- Converter.cs
- TextEditorCharacters.cs
- FixedTextSelectionProcessor.cs
- SpanIndex.cs
- RestHandlerFactory.cs
- NetworkCredential.cs
- Scripts.cs
- DotExpr.cs
- XmlElementList.cs
- RefreshEventArgs.cs
- ListViewInsertEventArgs.cs
- RowType.cs
- ISAPIWorkerRequest.cs
- Int64Converter.cs
- WsatTransactionHeader.cs
- FontDifferentiator.cs
- UserNameSecurityTokenParameters.cs
- dbenumerator.cs
- EnumUnknown.cs
- PerfCounterSection.cs