Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / XmlDataSourceView.cs / 1 / XmlDataSourceView.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing.Design; using System.Security.Permissions; using System.Text; using System.Web; using System.Web.UI; using System.Xml; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class XmlDataSourceView : DataSourceView { private XmlDataSource _owner; ////// Creates a new instance of XmlDataSourceView. /// public XmlDataSourceView(XmlDataSource owner, string name) : base(owner, name) { _owner = owner; } ////// Returns all the rows of the datasource. /// protected internal override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments) { arguments.RaiseUnsupportedCapabilitiesError(this); XmlNode root = _owner.GetXmlDocument(); XmlNodeList nodes = null; if (_owner.XPath.Length != 0) { // If an XPath is specified on the control, use it nodes = root.SelectNodes(_owner.XPath); } else { // Otherwise, get all the children of the root nodes = root.SelectNodes("/node()/node()"); } return new XmlDataSourceNodeDescriptorEnumeration(nodes); } public IEnumerable Select(DataSourceSelectArguments arguments) { return ExecuteSelect(arguments); } private class XmlDataSourceNodeDescriptorEnumeration : ICollection { private XmlNodeList _nodes; private int _count = -1; // -1 indicates we have not yet calculated the count public XmlDataSourceNodeDescriptorEnumeration(XmlNodeList nodes) { Debug.Assert(nodes != null, "Did not expect null node list"); _nodes = nodes; } IEnumerator IEnumerable.GetEnumerator() { foreach (XmlNode node in _nodes) { if (node.NodeType == XmlNodeType.Element) { yield return new XmlDataSourceNodeDescriptor(node); } } } int ICollection.Count { get { if (_count == -1) { // If the count has not yet been set, calculate the element count _count = 0; foreach (XmlNode node in _nodes) { if (node.NodeType == XmlNodeType.Element) { _count++; } } } return _count; } } bool ICollection.IsSynchronized { get { return false; } } object ICollection.SyncRoot { get { return null; } } void ICollection.CopyTo(Array array, int index) { for (IEnumerator e = ((IEnumerable)this).GetEnumerator(); e.MoveNext(); ) { array.SetValue(e.Current, index++); } } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReferenceConverter.cs
- SqlFunctionAttribute.cs
- Timer.cs
- Module.cs
- XpsInterleavingPolicy.cs
- HttpCacheVary.cs
- ObfuscateAssemblyAttribute.cs
- DayRenderEvent.cs
- AbsoluteQuery.cs
- TextEndOfLine.cs
- TdsParserSafeHandles.cs
- CompilerErrorCollection.cs
- ObjectList.cs
- QilStrConcatenator.cs
- ObjectViewEntityCollectionData.cs
- SetterTriggerConditionValueConverter.cs
- View.cs
- WriteTimeStream.cs
- VolatileEnlistmentState.cs
- TypeReference.cs
- TextRenderer.cs
- ProfileEventArgs.cs
- webproxy.cs
- TransformPatternIdentifiers.cs
- ShaperBuffers.cs
- VariableElement.cs
- CategoryNameCollection.cs
- SiteMapDataSourceView.cs
- DesignTimeSiteMapProvider.cs
- AxDesigner.cs
- PolyBezierSegment.cs
- HelpEvent.cs
- DataGridViewCellPaintingEventArgs.cs
- ProfessionalColors.cs
- WebAdminConfigurationHelper.cs
- webclient.cs
- FacetDescription.cs
- FontEditor.cs
- TouchesOverProperty.cs
- WmlLabelAdapter.cs
- XmlSchemaFacet.cs
- UiaCoreTypesApi.cs
- TailCallAnalyzer.cs
- StackSpiller.cs
- MenuItemStyleCollection.cs
- ViewCellSlot.cs
- ListViewUpdateEventArgs.cs
- StylusPlugin.cs
- Light.cs
- LocalizationParserHooks.cs
- DbConnectionPool.cs
- Activator.cs
- XmlDsigSep2000.cs
- GridViewColumnHeader.cs
- DllNotFoundException.cs
- ChtmlSelectionListAdapter.cs
- Optimizer.cs
- QueryLifecycle.cs
- ConfigPathUtility.cs
- EntityDataSourceContainerNameItem.cs
- DocumentPageTextView.cs
- PrimitiveType.cs
- DataListItemEventArgs.cs
- XsdDateTime.cs
- QilReplaceVisitor.cs
- FixedSOMTextRun.cs
- HttpResponseInternalWrapper.cs
- RelationshipWrapper.cs
- Color.cs
- DeviceContext2.cs
- UmAlQuraCalendar.cs
- TreeBuilder.cs
- WinHttpWebProxyFinder.cs
- RequestContext.cs
- OuterGlowBitmapEffect.cs
- MarshalDirectiveException.cs
- StringResourceManager.cs
- ModulesEntry.cs
- X509Certificate.cs
- AspNetHostingPermission.cs
- TextOutput.cs
- EnumerableWrapperWeakToStrong.cs
- HWStack.cs
- LambdaCompiler.Unary.cs
- SchemaImporter.cs
- SRDisplayNameAttribute.cs
- NamedPermissionSet.cs
- UTF32Encoding.cs
- KeyNotFoundException.cs
- ActionItem.cs
- DataGridCell.cs
- X509Chain.cs
- InlineCollection.cs
- SignedInfo.cs
- CookielessHelper.cs
- RawTextInputReport.cs
- Unit.cs
- SamlDelegatingWriter.cs
- PartialArray.cs
- XmlTextReaderImpl.cs