Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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;
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ResourceDescriptionAttribute.cs
- PropertyBuilder.cs
- DataViewManagerListItemTypeDescriptor.cs
- SpecialTypeDataContract.cs
- BindingGroup.cs
- XslVisitor.cs
- DebuggerAttributes.cs
- ProcessThread.cs
- TextChangedEventArgs.cs
- ResourceExpressionEditor.cs
- UITypeEditors.cs
- FunctionDetailsReader.cs
- ManagedCodeMarkers.cs
- CompositeScriptReferenceEventArgs.cs
- DataGridView.cs
- MultiTargetingUtil.cs
- InplaceBitmapMetadataWriter.cs
- RichTextBox.cs
- CodeConditionStatement.cs
- QuaternionAnimation.cs
- OleDbConnection.cs
- ServiceOperationInfoTypeConverter.cs
- XPathNodeIterator.cs
- PropertyRecord.cs
- EventEntry.cs
- ByteKeyFrameCollection.cs
- DiagnosticsConfigurationHandler.cs
- StyleTypedPropertyAttribute.cs
- FormsAuthenticationConfiguration.cs
- LineProperties.cs
- GenericPrincipal.cs
- MessageBox.cs
- HierarchicalDataBoundControl.cs
- OleServicesContext.cs
- PersonalizationDictionary.cs
- TextDecorationCollection.cs
- Inline.cs
- StructuralType.cs
- QilTypeChecker.cs
- SafeNativeMethods.cs
- StylusPointDescription.cs
- PrintDialogException.cs
- ParserStreamGeometryContext.cs
- Quack.cs
- ModifiableIteratorCollection.cs
- CompiledRegexRunner.cs
- securestring.cs
- panel.cs
- RequestTimeoutManager.cs
- BuilderPropertyEntry.cs
- ActivityExecutionContextCollection.cs
- StylusOverProperty.cs
- BreakRecordTable.cs
- DataExpression.cs
- FileDialog_Vista_Interop.cs
- NumberFormatInfo.cs
- MapPathBasedVirtualPathProvider.cs
- XmlDocumentSerializer.cs
- QilName.cs
- ClientOptions.cs
- IHttpResponseInternal.cs
- AvTraceFormat.cs
- MobileCapabilities.cs
- OpenFileDialog.cs
- WindowsEditBoxRange.cs
- DataGridViewComboBoxCell.cs
- StylusPointProperty.cs
- ListBase.cs
- RemotingService.cs
- namescope.cs
- ConfigurationPropertyCollection.cs
- ProfileSettingsCollection.cs
- Compensate.cs
- ParameterElementCollection.cs
- EventWaitHandle.cs
- NumberFormatter.cs
- MruCache.cs
- ObjectListTitleAttribute.cs
- HttpHandlerAction.cs
- ProxyHelper.cs
- BaseValidatorDesigner.cs
- OleDbPropertySetGuid.cs
- SqlConnection.cs
- oledbconnectionstring.cs
- XmlQueryRuntime.cs
- Page.cs
- InternalConfigEventArgs.cs
- WebPartDisplayModeCollection.cs
- KoreanCalendar.cs
- ValidatingPropertiesEventArgs.cs
- PerformanceCounterPermissionEntry.cs
- GifBitmapDecoder.cs
- GridViewColumnCollection.cs
- RepeaterItemEventArgs.cs
- MemoryRecordBuffer.cs
- GroupQuery.cs
- SHA1CryptoServiceProvider.cs
- PreservationFileWriter.cs
- MetadataProperty.cs
- SafeNativeMethodsCLR.cs