Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Configuration / System / Configuration / elementinformation.cs / 1305376 / elementinformation.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
using System;
using System.Configuration;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Collections;
using System.Runtime.Serialization;
namespace System.Configuration
{
// ElementInformation
//
// Expose information on Configuration Elements, and the
// properties that they contain
//
public sealed class ElementInformation
{
private ConfigurationElement _thisElement;
private PropertyInformationCollection _internalProperties;
private ConfigurationException[] _errors;
internal ElementInformation(ConfigurationElement thisElement) {
_thisElement = thisElement;
}
// Properties
//
// Retrieve Collection of properties within this element
//
public PropertyInformationCollection Properties
{
get {
if (_internalProperties == null) {
_internalProperties = new PropertyInformationCollection(_thisElement);
}
return _internalProperties;
}
}
// IsInherited
//
// Was this element inheritted, or was the property actually
// set here
//
public bool IsPresent {
get {
return _thisElement.ElementPresent;
}
}
// IsLocked
//
// Is this property locked?
//
public bool IsLocked {
get {
return (((_thisElement.ItemLocked & ConfigurationValueFlags.Locked) != 0) &&
((_thisElement.ItemLocked & ConfigurationValueFlags.Inherited) != 0));
}
}
// IsCollection
//
// Is this element a collection?
//
public bool IsCollection {
get {
ConfigurationElementCollection collection = _thisElement as ConfigurationElementCollection;
if (collection == null) { // Try the default collection
if (_thisElement.Properties.DefaultCollectionProperty != null) { // this is not a collection but it may contain a default collection
collection = _thisElement[_thisElement.Properties.DefaultCollectionProperty] as ConfigurationElementCollection;
}
}
return (collection != null);
}
}
// Internal method to fix SetRawXML defect...
internal PropertySourceInfo PropertyInfoInternal() {
return _thisElement.PropertyInfoInternal(_thisElement.ElementTagName);
}
internal void ChangeSourceAndLineNumber(PropertySourceInfo sourceInformation) {
_thisElement.Values.ChangeSourceInfo(_thisElement.ElementTagName, sourceInformation);
}
// Source
//
// What is the source file where this data came from
//
public string Source {
get {
PropertySourceInfo psi = _thisElement.Values.GetSourceInfo(_thisElement.ElementTagName);
if (psi == null) {
return null;
}
return psi.FileName;
}
}
// LineNumber
//
// What is the line number associated with the source
//
// Note:
// 1 is the first line in the file. 0 is returned when there is no
// source
//
public int LineNumber {
get {
PropertySourceInfo psi = _thisElement.Values.GetSourceInfo(_thisElement.ElementTagName);
if (psi == null) {
return 0;
}
return psi.LineNumber;
}
}
// Type
//
// What is the type for the element
//
public Type Type {
get {
return _thisElement.GetType();
}
}
// Validator
//
// What is the validator to validate the element?
//
public ConfigurationValidatorBase Validator {
get {
return _thisElement.ElementProperty.Validator;
}
}
// GetReadOnlyErrorsList
//
// Get a Read Only list of the exceptions for this
// element
//
private ConfigurationException[] GetReadOnlyErrorsList() {
ArrayList arrayList;
int count;
ConfigurationException[] exceptionList;
arrayList = _thisElement.GetErrorsList();
count = arrayList.Count;
// Create readonly array
exceptionList = new ConfigurationException[arrayList.Count];
if (count != 0) {
arrayList.CopyTo(exceptionList, 0);
}
return exceptionList;
}
// Errors
//
// Retrieve the _errors for this element and sub elements
//
public ICollection Errors {
get {
if (_errors == null) {
_errors = GetReadOnlyErrorsList();
}
return _errors;
}
}
}
}
// 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
- AbstractExpressions.cs
- QueryException.cs
- FindCriteria.cs
- SerialPort.cs
- xmlglyphRunInfo.cs
- ExpressionBuilder.cs
- MessagingDescriptionAttribute.cs
- FormCollection.cs
- SqlWorkflowInstanceStoreLock.cs
- XmlSchemaSimpleContentRestriction.cs
- RawKeyboardInputReport.cs
- ScrollChrome.cs
- autovalidator.cs
- CfgParser.cs
- WebServiceTypeData.cs
- BaseCodeDomTreeGenerator.cs
- _Semaphore.cs
- InvalidWMPVersionException.cs
- RequestDescription.cs
- DbConnectionStringCommon.cs
- ImportDesigner.xaml.cs
- JsonSerializer.cs
- ListBoxItemWrapperAutomationPeer.cs
- LineVisual.cs
- StrongName.cs
- EditorBrowsableAttribute.cs
- FixedSchema.cs
- ZoneMembershipCondition.cs
- UpdateExpressionVisitor.cs
- CultureMapper.cs
- DialogDivider.cs
- ToolStripDropDownClosedEventArgs.cs
- Storyboard.cs
- Axis.cs
- ShapeTypeface.cs
- HtmlSelect.cs
- WinFormsSpinner.cs
- EntityStoreSchemaGenerator.cs
- TransformValueSerializer.cs
- ConfigurationElementCollection.cs
- XmlWrappingWriter.cs
- WebColorConverter.cs
- SignatureHelper.cs
- InfiniteIntConverter.cs
- StickyNoteAnnotations.cs
- SHA1CryptoServiceProvider.cs
- NameTable.cs
- TextEditorParagraphs.cs
- NativeMethods.cs
- XmlSchemaAll.cs
- IProvider.cs
- ClientBuildManager.cs
- ItemType.cs
- StringWriter.cs
- LinkUtilities.cs
- IISUnsafeMethods.cs
- Typeface.cs
- XmlUtf8RawTextWriter.cs
- Point4DConverter.cs
- CounterCreationDataCollection.cs
- MarginsConverter.cs
- BitmapEffectInput.cs
- ValueProviderWrapper.cs
- XsdDataContractImporter.cs
- Parameter.cs
- CopyEncoder.cs
- SignatureResourcePool.cs
- BehaviorEditorPart.cs
- BoolLiteral.cs
- SqlClientPermission.cs
- SR.cs
- BamlTreeNode.cs
- SamlAttributeStatement.cs
- InvalidOperationException.cs
- TextEditor.cs
- SystemFonts.cs
- DocumentCollection.cs
- WmlFormAdapter.cs
- HtmlButton.cs
- DataObjectMethodAttribute.cs
- Tuple.cs
- LOSFormatter.cs
- BitmapPalette.cs
- CompositeFontInfo.cs
- ReflectionPermission.cs
- AbandonedMutexException.cs
- KnownAssembliesSet.cs
- Win32KeyboardDevice.cs
- XmlSchemaRedefine.cs
- Vector3DValueSerializer.cs
- ContextStaticAttribute.cs
- HostingEnvironmentException.cs
- XamlValidatingReader.cs
- DirectoryNotFoundException.cs
- ConstraintManager.cs
- TypeContext.cs
- FixedSOMTableCell.cs
- XmlDigitalSignatureProcessor.cs
- State.cs
- LineBreakRecord.cs