Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / clr / src / BCL / System / Runtime / Serialization / SerializationFieldInfo.cs / 1 / SerializationFieldInfo.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: SerializationFieldInfo
**
**
** Purpose: Provides a methods of representing imaginary fields
** which are unique to serialization. In this case, what we're
** representing is the private members of parent classes. We
** aggregate the RuntimeFieldInfo associated with this member
** and return a managled form of the name. The name that we
** return is .parentname.fieldname
**
**
============================================================*/
using System;
using System.Reflection;
using System.Globalization;
namespace System.Runtime.Serialization {
internal sealed class SerializationFieldInfo : FieldInfo {
internal static readonly char FakeNameSeparatorChar = '+';
internal static readonly String FakeNameSeparatorString = "+";
private RuntimeFieldInfo m_field;
private String m_serializationName;
public override Module Module { get { return m_field.Module; } }
public override int MetadataToken { get { return m_field.MetadataToken; } }
internal SerializationFieldInfo(RuntimeFieldInfo field, String namePrefix) {
BCLDebug.Assert(field!=null, "[SerializationFieldInfo.ctor]field!=null");
BCLDebug.Assert(namePrefix!=null, "[SerializationFieldInfo.ctor]namePrefix!=null");
m_field = field;
m_serializationName = String.Concat(namePrefix, FakeNameSeparatorString, m_field.Name);
}
//
// MemberInfo methods
//
public override String Name {
get {
return m_serializationName;
}
}
public override Type DeclaringType {
get {
return m_field.DeclaringType;
}
}
public override Type ReflectedType {
get {
return m_field.ReflectedType;
}
}
public override Object[] GetCustomAttributes(bool inherit) {
return m_field.GetCustomAttributes(inherit);
}
public override Object[] GetCustomAttributes(Type attributeType, bool inherit) {
return m_field.GetCustomAttributes(attributeType, inherit);
}
public override bool IsDefined(Type attributeType, bool inherit) {
return m_field.IsDefined(attributeType, inherit);
}
//
// FieldInfo methods
//
public override Type FieldType {
get {
return m_field.FieldType;
}
}
public override Object GetValue(Object obj) {
return m_field.GetValue(obj);
}
internal Object InternalGetValue(Object obj, bool requiresAccessCheck) {
RtFieldInfo field = m_field as RtFieldInfo;
if (field != null)
return field.InternalGetValue(obj, requiresAccessCheck);
else
return m_field.GetValue(obj);
}
public override void SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture) {
m_field.SetValue(obj, value, invokeAttr, binder, culture);
}
internal void InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, bool requiresAccessCheck, bool isBinderDefault) {
//m_field.InternalSetValue(obj, value, invokeAttr, binder, culture, requiresAccessCheck, isBinderDefault);
RtFieldInfo field = m_field as RtFieldInfo;
if (field != null)
field.InternalSetValue(obj, value, invokeAttr, binder, culture, false);
else
m_field.SetValue(obj, value, invokeAttr, binder, culture);
}
internal RuntimeFieldInfo FieldInfo {
get {
return m_field;
}
}
public override RuntimeFieldHandle FieldHandle {
get {
return m_field.FieldHandle;
}
}
public override FieldAttributes Attributes {
get {
return m_field.Attributes;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: SerializationFieldInfo
**
**
** Purpose: Provides a methods of representing imaginary fields
** which are unique to serialization. In this case, what we're
** representing is the private members of parent classes. We
** aggregate the RuntimeFieldInfo associated with this member
** and return a managled form of the name. The name that we
** return is .parentname.fieldname
**
**
============================================================*/
using System;
using System.Reflection;
using System.Globalization;
namespace System.Runtime.Serialization {
internal sealed class SerializationFieldInfo : FieldInfo {
internal static readonly char FakeNameSeparatorChar = '+';
internal static readonly String FakeNameSeparatorString = "+";
private RuntimeFieldInfo m_field;
private String m_serializationName;
public override Module Module { get { return m_field.Module; } }
public override int MetadataToken { get { return m_field.MetadataToken; } }
internal SerializationFieldInfo(RuntimeFieldInfo field, String namePrefix) {
BCLDebug.Assert(field!=null, "[SerializationFieldInfo.ctor]field!=null");
BCLDebug.Assert(namePrefix!=null, "[SerializationFieldInfo.ctor]namePrefix!=null");
m_field = field;
m_serializationName = String.Concat(namePrefix, FakeNameSeparatorString, m_field.Name);
}
//
// MemberInfo methods
//
public override String Name {
get {
return m_serializationName;
}
}
public override Type DeclaringType {
get {
return m_field.DeclaringType;
}
}
public override Type ReflectedType {
get {
return m_field.ReflectedType;
}
}
public override Object[] GetCustomAttributes(bool inherit) {
return m_field.GetCustomAttributes(inherit);
}
public override Object[] GetCustomAttributes(Type attributeType, bool inherit) {
return m_field.GetCustomAttributes(attributeType, inherit);
}
public override bool IsDefined(Type attributeType, bool inherit) {
return m_field.IsDefined(attributeType, inherit);
}
//
// FieldInfo methods
//
public override Type FieldType {
get {
return m_field.FieldType;
}
}
public override Object GetValue(Object obj) {
return m_field.GetValue(obj);
}
internal Object InternalGetValue(Object obj, bool requiresAccessCheck) {
RtFieldInfo field = m_field as RtFieldInfo;
if (field != null)
return field.InternalGetValue(obj, requiresAccessCheck);
else
return m_field.GetValue(obj);
}
public override void SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture) {
m_field.SetValue(obj, value, invokeAttr, binder, culture);
}
internal void InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, bool requiresAccessCheck, bool isBinderDefault) {
//m_field.InternalSetValue(obj, value, invokeAttr, binder, culture, requiresAccessCheck, isBinderDefault);
RtFieldInfo field = m_field as RtFieldInfo;
if (field != null)
field.InternalSetValue(obj, value, invokeAttr, binder, culture, false);
else
m_field.SetValue(obj, value, invokeAttr, binder, culture);
}
internal RuntimeFieldInfo FieldInfo {
get {
return m_field;
}
}
public override RuntimeFieldHandle FieldHandle {
get {
return m_field.FieldHandle;
}
}
public override FieldAttributes Attributes {
get {
return m_field.Attributes;
}
}
}
}
// 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
- ThreadNeutralSemaphore.cs
- COM2ExtendedUITypeEditor.cs
- PasswordTextNavigator.cs
- ProcessHostMapPath.cs
- TextEditorMouse.cs
- WebUtil.cs
- FunctionDescription.cs
- CollectionsUtil.cs
- SqlAggregateChecker.cs
- DataSourceCollectionBase.cs
- ActivityXamlServices.cs
- ToolStripDropDown.cs
- DisableDpiAwarenessAttribute.cs
- TextEncodedRawTextWriter.cs
- StorageMappingItemCollection.cs
- SecurityChannelFactory.cs
- BuildResultCache.cs
- _ChunkParse.cs
- DataGridViewEditingControlShowingEventArgs.cs
- DatatypeImplementation.cs
- AppLevelCompilationSectionCache.cs
- ClassGenerator.cs
- ToolboxItemFilterAttribute.cs
- TextEditorCopyPaste.cs
- Blend.cs
- SecurityChannelFactory.cs
- GraphicsContainer.cs
- UseLicense.cs
- DataViewManager.cs
- UIElement3D.cs
- COM2ExtendedBrowsingHandler.cs
- RegexCharClass.cs
- ListViewItem.cs
- EntityDesignerDataSourceView.cs
- XmlParserContext.cs
- FlowNode.cs
- Positioning.cs
- Route.cs
- ParserHooks.cs
- StringSource.cs
- EventProvider.cs
- Keyboard.cs
- ActivityXamlServices.cs
- MetricEntry.cs
- SymmetricKeyWrap.cs
- DataGridViewRowPostPaintEventArgs.cs
- Expressions.cs
- TreeNodeCollection.cs
- InstalledFontCollection.cs
- RSAOAEPKeyExchangeDeformatter.cs
- Tuple.cs
- PageContentCollection.cs
- PopupRoot.cs
- StylusPointProperty.cs
- EvidenceBase.cs
- XmlSchemaDatatype.cs
- IssuanceLicense.cs
- PointAnimationUsingKeyFrames.cs
- TemporaryBitmapFile.cs
- TileBrush.cs
- URLMembershipCondition.cs
- ManipulationDevice.cs
- WindowsTitleBar.cs
- SecurityTokenTypes.cs
- MobileCategoryAttribute.cs
- PageThemeParser.cs
- ChannelManager.cs
- StackBuilderSink.cs
- WindowShowOrOpenTracker.cs
- ScrollProperties.cs
- Slider.cs
- AdCreatedEventArgs.cs
- AncillaryOps.cs
- RichTextBoxAutomationPeer.cs
- TrackingProfileSerializer.cs
- EditBehavior.cs
- AuthorizationSection.cs
- CaretElement.cs
- MessageBox.cs
- HttpProfileGroupBase.cs
- PageCatalogPartDesigner.cs
- UpdateCommand.cs
- TimeSpanConverter.cs
- versioninfo.cs
- HashCodeCombiner.cs
- ButtonChrome.cs
- ComboBox.cs
- TableLayoutStyle.cs
- SecurityKeyType.cs
- recordstate.cs
- ServiceModelSecurityTokenRequirement.cs
- KeySpline.cs
- AuthorizationRule.cs
- SoapIgnoreAttribute.cs
- MetadataArtifactLoaderCompositeFile.cs
- TextHidden.cs
- ObjectDataSourceChooseMethodsPanel.cs
- ErrorFormatter.cs
- LoginViewDesigner.cs
- DesignTimeParseData.cs