Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWebControls / System / Data / WebControls / EntityDataSourceWrapperPropertyDescriptor.cs / 1305376 / EntityDataSourceWrapperPropertyDescriptor.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.Data;
using System.Configuration;
using System.ComponentModel;
using System.Data.Common;
using System.Data.Metadata.Edm;
using System.Reflection;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Collections.ObjectModel;
using System.Text;
namespace System.Web.UI.WebControls
{
///
/// Wrapper property descriptor that handles access of nested members and
/// entity reference keys.
///
///
/// This class essentially glues together a wrapper collection (roughly speaking
/// the 'data' exposed by the control) and the column (which defines the metadata
/// and behaviors for the current property).
///
internal sealed class EntityDataSourceWrapperPropertyDescriptor : PropertyDescriptor
{
private readonly EntityDataSourceWrapperCollection _collection;
private readonly EntityDataSourceColumn _column;
internal EntityDataSourceWrapperPropertyDescriptor(EntityDataSourceWrapperCollection collection, EntityDataSourceColumn column)
: base(EntityDataSourceUtil.CheckArgumentNull(column, "column").DisplayName, new Attribute[] { })
{
EntityDataSourceUtil.CheckArgumentNull(collection, "collection");
_collection = collection;
_column = column;
}
internal EntityDataSourceColumn Column
{
get { return _column; }
}
public override Type ComponentType
{
get { return _collection.ClrEntityType; }
}
public override bool IsReadOnly
{
get { return _collection.IsReadOnly || !_column.CanWrite; }
}
public override Type PropertyType
{
get { return _column.ClrType; }
}
public override bool CanResetValue(object component)
{
return false;
}
public override void ResetValue(object component)
{
throw new InvalidOperationException(Strings.ValueNotResettable(this.ComponentType.Name));
}
public override object GetValue(object component)
{
return _column.GetValue(GetWrapper(component));
}
public override void SetValue(object component, object value)
{
if (IsReadOnly)
{
throw new InvalidOperationException(Strings.SetValueNotSupported);
}
_column.SetValue(GetWrapper(component), value);
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
private EntityDataSourceWrapper GetWrapper(object component)
{
// Validate that the component comes from the collection to which
// this descriptor is bound. Elements of the collection are
// non-null wrappers instances.
EntityDataSourceUtil.CheckArgumentNull(component, "component");
EntityDataSourceWrapper wrapper = component as EntityDataSourceWrapper;
if (null == wrapper || this._collection != wrapper.Collection)
{
throw new ArgumentException(Strings.ComponentNotFromProperCollection, "component");
}
return wrapper;
}
}
}
// 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
- StringSorter.cs
- CanExecuteRoutedEventArgs.cs
- XsltOutput.cs
- SettingsPropertyWrongTypeException.cs
- Lease.cs
- ObjectContext.cs
- CompressedStack.cs
- AnnotationComponentManager.cs
- DateTimeFormat.cs
- TextFormattingConverter.cs
- PolicyReader.cs
- EnumerableValidator.cs
- KeyPullup.cs
- CodeTypeReferenceSerializer.cs
- FontUnitConverter.cs
- ValidatedControlConverter.cs
- ToolStripDesignerAvailabilityAttribute.cs
- ISO2022Encoding.cs
- CounterCreationData.cs
- HtmlTernaryTree.cs
- StringKeyFrameCollection.cs
- CodeValidator.cs
- Activity.cs
- ContentPropertyAttribute.cs
- __Filters.cs
- InheritanceRules.cs
- OutputCacheSettingsSection.cs
- ScriptMethodAttribute.cs
- HttpRawResponse.cs
- VectorValueSerializer.cs
- DataControlImageButton.cs
- ScrollPatternIdentifiers.cs
- ProcessHostConfigUtils.cs
- ApplicationProxyInternal.cs
- RoleGroupCollectionEditor.cs
- HashMembershipCondition.cs
- SqlUtils.cs
- CompositeActivityTypeDescriptorProvider.cs
- StringResourceManager.cs
- GlyphRun.cs
- ExtenderControl.cs
- PageRouteHandler.cs
- AutomationPatternInfo.cs
- Currency.cs
- BitmapEffectDrawing.cs
- DeclarationUpdate.cs
- PropertyChangedEventArgs.cs
- GifBitmapEncoder.cs
- RtfNavigator.cs
- Transform.cs
- MouseDevice.cs
- KeyBinding.cs
- OrderedDictionary.cs
- TypeUtil.cs
- LineServicesRun.cs
- DBPropSet.cs
- Context.cs
- SHA1.cs
- PointKeyFrameCollection.cs
- Fault.cs
- ImageMetadata.cs
- Pick.cs
- StrokeNodeEnumerator.cs
- DecimalAnimation.cs
- EditingContext.cs
- Vector.cs
- precedingsibling.cs
- XmlSchemaResource.cs
- UInt64Storage.cs
- ParameterModifier.cs
- HttpTransportElement.cs
- CriticalExceptions.cs
- ExpressionVisitor.cs
- base64Transforms.cs
- ToolStripTemplateNode.cs
- ClientSideProviderDescription.cs
- StringFreezingAttribute.cs
- RetrieveVirtualItemEventArgs.cs
- FileDialogCustomPlaces.cs
- MetadataArtifactLoaderComposite.cs
- MailAddressParser.cs
- FileStream.cs
- MediaSystem.cs
- TextRenderer.cs
- XmlAnyElementAttributes.cs
- ItemCollection.cs
- WizardSideBarListControlItem.cs
- EncryptedXml.cs
- RootNamespaceAttribute.cs
- FormsAuthenticationUser.cs
- Scanner.cs
- OutputScope.cs
- WithStatement.cs
- ContextBase.cs
- MediaContext.cs
- SecurityCriticalDataForSet.cs
- TextRange.cs
- ValidatingReaderNodeData.cs
- TextServicesCompartmentEventSink.cs
- MarginsConverter.cs