Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / DataSourceConverter.cs / 1 / DataSourceConverter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.Design {
using System;
using System.CodeDom;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Data;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Globalization;
///
///
///
/// Provides design-time support for a component's data source property.
///
///
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
public class DataSourceConverter : TypeConverter {
///
///
///
/// Initializes a new instance of .
///
///
public DataSourceConverter() {
}
///
///
///
/// Gets a value indicating whether this converter can
/// convert an object in the given source type to the native type of the converter
/// using the context.
///
///
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
if (sourceType == typeof(string)) {
return true;
}
return false;
}
///
///
///
/// Converts the given object to the converter's native type.
///
///
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
if (value == null) {
return String.Empty;
}
else if (value.GetType() == typeof(string)) {
return (string)value;
}
throw GetConvertFromException(value);
}
///
///
///
/// Gets the standard data sources accessible to the control.
///
///
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) {
object[] names = null;
if (context != null) {
ArrayList list = new ArrayList();
IContainer cont = context.Container;
if (cont != null) {
ComponentCollection objs = cont.Components;
foreach (IComponent comp in (IEnumerable)objs) {
if (IsValidDataSource(comp) && !Marshal.IsComObject(comp)) {
PropertyDescriptor modifierProp = TypeDescriptor.GetProperties(comp)["Modifiers"];
if (modifierProp != null) {
MemberAttributes modifiers = (MemberAttributes)modifierProp.GetValue(comp);
if ((modifiers & MemberAttributes.AccessMask) == MemberAttributes.Private) {
// must be declared as public or protected
continue;
}
}
ISite site = comp.Site;
if (site != null) {
string name = site.Name;
if (name != null) {
list.Add(name);
}
}
}
}
}
names = list.ToArray();
Array.Sort(names, Comparer.Default);
}
return new StandardValuesCollection(names);
}
///
///
///
/// Gets a value indicating whether the collection of standard values returned from
/// is an exclusive
/// list of possible values, using the specified context.
///
///
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) {
return false;
}
///
///
///
/// Gets a value indicating whether this object supports a standard set of values
/// that can be picked from a list.
///
///
public override bool GetStandardValuesSupported(ITypeDescriptorContext context) {
return true;
}
protected virtual bool IsValidDataSource(IComponent component) {
return (component is IEnumerable) || (component is IListSource);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ACL.cs
- HtmlContainerControl.cs
- SignatureToken.cs
- LoadMessageLogger.cs
- DesignerForm.cs
- EmptyReadOnlyDictionaryInternal.cs
- Emitter.cs
- QuaternionConverter.cs
- Pens.cs
- NumericExpr.cs
- MsmqInputMessage.cs
- CustomTypeDescriptor.cs
- InfoCardX509Validator.cs
- DeviceFilterEditorDialog.cs
- RegexGroup.cs
- DocumentPageView.cs
- cookiecontainer.cs
- GeneralTransform3DGroup.cs
- CellLabel.cs
- ModifierKeysConverter.cs
- DesignerSerializationOptionsAttribute.cs
- PageSetupDialog.cs
- EditorZoneBase.cs
- HttpWriter.cs
- SqlReferenceCollection.cs
- XPathSelectionIterator.cs
- InitializeCorrelation.cs
- StorageRoot.cs
- TransformPattern.cs
- XPathQilFactory.cs
- SortedSet.cs
- Utils.cs
- SupportingTokenSecurityTokenResolver.cs
- HttpServerVarsCollection.cs
- PanelStyle.cs
- DataGridViewDataErrorEventArgs.cs
- QueryStringParameter.cs
- VBCodeProvider.cs
- Identity.cs
- PerspectiveCamera.cs
- BinaryObjectWriter.cs
- HashHelper.cs
- ProjectionCamera.cs
- FilterEventArgs.cs
- UIElementHelper.cs
- ChangePasswordAutoFormat.cs
- DocumentApplicationJournalEntry.cs
- HtmlInputReset.cs
- ArrayExtension.cs
- SimpleMailWebEventProvider.cs
- DbDeleteCommandTree.cs
- StringAttributeCollection.cs
- IDispatchConstantAttribute.cs
- XPathQilFactory.cs
- FileLoadException.cs
- StandardCommandToolStripMenuItem.cs
- WindowPatternIdentifiers.cs
- App.cs
- QilInvoke.cs
- ProfileSettings.cs
- Propagator.Evaluator.cs
- PaginationProgressEventArgs.cs
- ObjectViewEntityCollectionData.cs
- ParserOptions.cs
- Zone.cs
- ToolStripDropDown.cs
- Helper.cs
- LayoutExceptionEventArgs.cs
- BinaryWriter.cs
- EventHandlersStore.cs
- TextEditorSpelling.cs
- PanelStyle.cs
- SqlDataSourceEnumerator.cs
- FormViewInsertedEventArgs.cs
- MultipleViewProviderWrapper.cs
- Matrix3DStack.cs
- OptimizedTemplateContentHelper.cs
- CorePropertiesFilter.cs
- VectorValueSerializer.cs
- AttachedAnnotationChangedEventArgs.cs
- SQLSingle.cs
- DirectoryObjectSecurity.cs
- Directory.cs
- BinaryFormatter.cs
- ChtmlSelectionListAdapter.cs
- VideoDrawing.cs
- ListViewItemEventArgs.cs
- ActivityCollectionMarkupSerializer.cs
- ConstructorBuilder.cs
- DefaultIfEmptyQueryOperator.cs
- Rect3DConverter.cs
- _UncName.cs
- DataMisalignedException.cs
- XmlSecureResolver.cs
- BindingBase.cs
- AuthenticatedStream.cs
- GeneratedCodeAttribute.cs
- PathTooLongException.cs
- CompiledRegexRunner.cs
- ReadOnlyKeyedCollection.cs