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
- RTLAwareMessageBox.cs
- DataControlExtensions.cs
- ObjectView.cs
- BaseInfoTable.cs
- ServiceModelActivity.cs
- UnsafeNativeMethods.cs
- StylusPlugInCollection.cs
- FontFamilyConverter.cs
- DataColumnChangeEvent.cs
- CodeTypeReferenceExpression.cs
- FixedLineResult.cs
- ChannelCredentials.cs
- _KerberosClient.cs
- IPCCacheManager.cs
- RegexWriter.cs
- CachedBitmap.cs
- ACL.cs
- LZCodec.cs
- EntityViewGenerationAttribute.cs
- ProcessHost.cs
- FixedPageAutomationPeer.cs
- XmlLinkedNode.cs
- SmtpDigestAuthenticationModule.cs
- GraphicsState.cs
- DrawingCollection.cs
- ContentFileHelper.cs
- SqlRetyper.cs
- DataControlCommands.cs
- LogPolicy.cs
- WebPartCloseVerb.cs
- SplitterPanel.cs
- SqlCacheDependencyDatabaseCollection.cs
- OAVariantLib.cs
- ExpressionLexer.cs
- Int32Rect.cs
- ProfilePropertySettingsCollection.cs
- Authorization.cs
- brushes.cs
- WorkflowApplicationIdleEventArgs.cs
- XmlSchemaInfo.cs
- FilteredAttributeCollection.cs
- EntityCodeGenerator.cs
- Package.cs
- LocalizationParserHooks.cs
- JapaneseLunisolarCalendar.cs
- TypeUtil.cs
- UiaCoreTypesApi.cs
- CustomWebEventKey.cs
- TextAdaptor.cs
- Line.cs
- TimeStampChecker.cs
- SparseMemoryStream.cs
- TdsParserStaticMethods.cs
- shaper.cs
- ExitEventArgs.cs
- TextDecorationUnitValidation.cs
- SystemUnicastIPAddressInformation.cs
- ReadOnlyDictionary.cs
- ColorAnimation.cs
- XpsDocument.cs
- InvalidFilterCriteriaException.cs
- PathSegment.cs
- StrokeNodeData.cs
- OleDbSchemaGuid.cs
- UInt16.cs
- OnOperation.cs
- ParameterSubsegment.cs
- WhileDesigner.cs
- Matrix3D.cs
- XmlSchemaObjectTable.cs
- HttpWebRequest.cs
- TracePayload.cs
- TextInfo.cs
- DataGridSortCommandEventArgs.cs
- HierarchicalDataBoundControl.cs
- ImageFormatConverter.cs
- Privilege.cs
- DebugInfoExpression.cs
- EventTrigger.cs
- TraceSection.cs
- Cursors.cs
- CodeIdentifier.cs
- ErrorInfoXmlDocument.cs
- TemplateColumn.cs
- EventDescriptor.cs
- Buffer.cs
- BaseDataBoundControl.cs
- OleStrCAMarshaler.cs
- ObjectQueryState.cs
- ToolBarDesigner.cs
- GroupAggregateExpr.cs
- HostingPreferredMapPath.cs
- DataControlFieldHeaderCell.cs
- DeviceContexts.cs
- ButtonChrome.cs
- TextSelectionHighlightLayer.cs
- InvokePattern.cs
- InternalConfigRoot.cs
- CultureInfoConverter.cs
- MetadataProperty.cs