Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / DataSourceHelper.cs / 1305376 / DataSourceHelper.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Data;
using System.Diagnostics;
namespace System.Web.UI.MobileControls
{
/*
* Data Source Helper class. Copied fairly verbatim from ASP.NET code base, and modified
* to match our coding standards and, more importantly, use our exceptions.
* The ASP.NET file is /system/web/ui/DataSourceHelper.cs (a private class)
*
* Copyright (c) 2000 Microsoft Corporation
*/
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
internal sealed class DataSourceHelper
{
private DataSourceHelper()
{
}
internal static IEnumerable GetResolvedDataSource(Object dataSource, String dataMember)
{
if (dataSource == null)
{
return null;
}
IListSource listSource = dataSource as IListSource;
if (listSource != null)
{
IList memberList = listSource.GetList();
if (listSource.ContainsListCollection == false)
{
// The returned list is itself the list we need to bind to.
// (Ignore DataMember parameter.)
return (IEnumerable)memberList;
}
if ((memberList != null) && (memberList is ITypedList))
{
ITypedList typedMemberList = (ITypedList)memberList;
PropertyDescriptorCollection propDescs =
typedMemberList.GetItemProperties (new PropertyDescriptor[0]);
if ((propDescs != null) && (propDescs.Count != 0))
{
PropertyDescriptor listProperty = null;
if ((dataMember == null) || (dataMember.Length == 0))
{
listProperty = propDescs[0];
}
else
{
listProperty = propDescs.Find(dataMember, true);
}
if (listProperty != null)
{
Object listRow = memberList[0];
Object list = listProperty.GetValue(listRow);
if ((list != null) && (list is IEnumerable))
{
return (IEnumerable)list;
}
}
throw new ArgumentException(
SR.GetString(SR.DataSourceHelper_MissingDataMember,
dataMember));
}
else
{
throw new ArgumentException(
SR.GetString(SR.DataSourceHelper_DataSourceWithoutDataMember,
"List DataSource"));
}
}
}
if (dataSource is IEnumerable)
{
return (IEnumerable)dataSource;
}
return null;
}
}
}
// 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
- XmlObjectSerializer.cs
- MemoryStream.cs
- LocatorManager.cs
- MultiView.cs
- UnauthorizedWebPart.cs
- InvokeGenerator.cs
- ListControlConvertEventArgs.cs
- EventArgs.cs
- TypeLoadException.cs
- ExpressionLexer.cs
- Activity.cs
- Empty.cs
- OpenFileDialog.cs
- TaiwanCalendar.cs
- FileInfo.cs
- SortedSetDebugView.cs
- BamlStream.cs
- WindowsListViewItem.cs
- __Error.cs
- HttpCookiesSection.cs
- StateBag.cs
- AggregateNode.cs
- NonBatchDirectoryCompiler.cs
- LinqExpressionNormalizer.cs
- CharacterString.cs
- SortQuery.cs
- SingleKeyFrameCollection.cs
- ParallelTimeline.cs
- DiffuseMaterial.cs
- BrowserCapabilitiesFactoryBase.cs
- XmlFormatWriterGenerator.cs
- NestedContainer.cs
- MatrixTransform.cs
- PowerModeChangedEventArgs.cs
- PrintController.cs
- InvokeWebService.cs
- SQLMoneyStorage.cs
- AssemblyName.cs
- EdmMember.cs
- PingOptions.cs
- ContextConfiguration.cs
- GeometryGroup.cs
- StrokeSerializer.cs
- RadioButton.cs
- ToolStripComboBox.cs
- SizeKeyFrameCollection.cs
- WebPartUserCapability.cs
- RectAnimationBase.cs
- TextTreeInsertElementUndoUnit.cs
- QilTypeChecker.cs
- UInt16.cs
- ToolStripLocationCancelEventArgs.cs
- AttributedMetaModel.cs
- RedBlackList.cs
- MarshalByValueComponent.cs
- XmlEventCache.cs
- ProfilePropertyNameValidator.cs
- ExtendedPropertyDescriptor.cs
- SchemaNames.cs
- DataGridViewRowCollection.cs
- ProcessInfo.cs
- WinEventHandler.cs
- AssemblyBuilder.cs
- SqlDataReaderSmi.cs
- shaperfactoryquerycacheentry.cs
- DataGridViewRowStateChangedEventArgs.cs
- HijriCalendar.cs
- OperationValidationEventArgs.cs
- PageBuildProvider.cs
- VersionedStreamOwner.cs
- QueueAccessMode.cs
- Crypto.cs
- TemplateXamlTreeBuilder.cs
- HelpKeywordAttribute.cs
- MetadataPropertyAttribute.cs
- EventEntry.cs
- CrossAppDomainChannel.cs
- SystemEvents.cs
- ProviderSettingsCollection.cs
- LocationSectionRecord.cs
- BitmapSourceSafeMILHandle.cs
- JsonFormatReaderGenerator.cs
- TreeWalkHelper.cs
- RequestNavigateEventArgs.cs
- RegexCode.cs
- AssociationTypeEmitter.cs
- HttpClientCertificate.cs
- Utils.cs
- ViewBase.cs
- ReadOnlyDictionary.cs
- MarkerProperties.cs
- ScrollChangedEventArgs.cs
- EventLogPermissionHolder.cs
- TreeBuilderBamlTranslator.cs
- InputBinder.cs
- CodeBinaryOperatorExpression.cs
- DynamicDiscoveryDocument.cs
- JapaneseCalendar.cs
- CatalogPart.cs
- HtmlContainerControl.cs