Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / Util / AttributeExtensions.cs / 1305376 / AttributeExtensions.cs
namespace System.Web.DynamicData.Util {
using System;
using System.Collections.Generic;
using System.Linq;
internal static class AttributeExtensions {
///
/// Gets the first attribute of a given time on the target AttributeCollection, or null.
///
/// The attribute type
/// The AttributeCollection object
///
internal static TAttribute FirstOrDefault(this System.ComponentModel.AttributeCollection attributes) where TAttribute : Attribute {
return attributes.OfType().FirstOrDefault();
}
internal static TResult GetAttributePropertyValue(this System.ComponentModel.AttributeCollection attributes, Func propertyGetter)
where TResult : class
where TAttribute : Attribute {
return attributes.GetAttributePropertyValue(propertyGetter, null);
}
internal static TResult GetAttributePropertyValue(this System.ComponentModel.AttributeCollection attributes, Func propertyGetter, TResult defaultValue)
where TAttribute : Attribute {
var attribute = attributes.FirstOrDefault();
return attribute.GetPropertyValue(propertyGetter, defaultValue);
}
///
/// Gets the property for a given attribute reference or returns null if the reference is null.
///
/// The attribute type
/// The type of the attribute's property
/// The attribute reference
/// The function to evaluate on the attribute
///
internal static TResult GetPropertyValue(this TAttribute attribute, Func propertyGetter)
where TResult : class
where TAttribute : Attribute {
return attribute.GetPropertyValue(propertyGetter, null);
}
///
/// Gets the property for a given attribute reference or returns the default value if the reference is null.
///
/// The attribute type
/// The type of the attribute's property
/// The attribute reference
/// The function to evaluate on the attribute
/// The default value to return if the attribute is null
///
internal static TResult GetPropertyValue(this TAttribute attribute, Func propertyGetter, TResult defaultValue)
where TAttribute : Attribute {
if (attribute != null) {
return propertyGetter(attribute);
}
else {
return defaultValue;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
namespace System.Web.DynamicData.Util {
using System;
using System.Collections.Generic;
using System.Linq;
internal static class AttributeExtensions {
///
/// Gets the first attribute of a given time on the target AttributeCollection, or null.
///
/// The attribute type
/// The AttributeCollection object
///
internal static TAttribute FirstOrDefault(this System.ComponentModel.AttributeCollection attributes) where TAttribute : Attribute {
return attributes.OfType().FirstOrDefault();
}
internal static TResult GetAttributePropertyValue(this System.ComponentModel.AttributeCollection attributes, Func propertyGetter)
where TResult : class
where TAttribute : Attribute {
return attributes.GetAttributePropertyValue(propertyGetter, null);
}
internal static TResult GetAttributePropertyValue(this System.ComponentModel.AttributeCollection attributes, Func propertyGetter, TResult defaultValue)
where TAttribute : Attribute {
var attribute = attributes.FirstOrDefault();
return attribute.GetPropertyValue(propertyGetter, defaultValue);
}
///
/// Gets the property for a given attribute reference or returns null if the reference is null.
///
/// The attribute type
/// The type of the attribute's property
/// The attribute reference
/// The function to evaluate on the attribute
///
internal static TResult GetPropertyValue(this TAttribute attribute, Func propertyGetter)
where TResult : class
where TAttribute : Attribute {
return attribute.GetPropertyValue(propertyGetter, null);
}
///
/// Gets the property for a given attribute reference or returns the default value if the reference is null.
///
/// The attribute type
/// The type of the attribute's property
/// The attribute reference
/// The function to evaluate on the attribute
/// The default value to return if the attribute is null
///
internal static TResult GetPropertyValue(this TAttribute attribute, Func propertyGetter, TResult defaultValue)
where TAttribute : Attribute {
if (attribute != null) {
return propertyGetter(attribute);
}
else {
return defaultValue;
}
}
}
}
// 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
- RevocationPoint.cs
- ZeroOpNode.cs
- TaskCanceledException.cs
- QueueSurrogate.cs
- dtdvalidator.cs
- ConsoleTraceListener.cs
- XmlSerializationWriter.cs
- AppliedDeviceFiltersDialog.cs
- GridPattern.cs
- HttpRequest.cs
- MonitorWrapper.cs
- OptimalBreakSession.cs
- TraceLevelHelper.cs
- Region.cs
- AsymmetricAlgorithm.cs
- BinaryConverter.cs
- TcpProcessProtocolHandler.cs
- EditingCommands.cs
- Calendar.cs
- ActivationService.cs
- DelegateSerializationHolder.cs
- Context.cs
- TextElementCollection.cs
- ToolStripContainerActionList.cs
- FactoryRecord.cs
- HtmlTernaryTree.cs
- TdsParserSessionPool.cs
- PanelDesigner.cs
- PersonalizationEntry.cs
- SystemResources.cs
- DbParameterHelper.cs
- RemotingConfigParser.cs
- TextDecorations.cs
- XmlBinaryReader.cs
- LongValidator.cs
- WindowsGraphics.cs
- WebPartZone.cs
- WmlLiteralTextAdapter.cs
- TimeSpanMinutesConverter.cs
- DBNull.cs
- RangeBaseAutomationPeer.cs
- LicFileLicenseProvider.cs
- BindToObject.cs
- RemotingConfiguration.cs
- _DomainName.cs
- Expression.cs
- TagPrefixCollection.cs
- FactoryRecord.cs
- CompositeScriptReferenceEventArgs.cs
- LocalizedNameDescriptionPair.cs
- ManagementException.cs
- SetUserPreferenceRequest.cs
- FlowDocument.cs
- WinEventQueueItem.cs
- ControlCachePolicy.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- RowBinding.cs
- DoubleLinkListEnumerator.cs
- PopOutPanel.cs
- AudioStateChangedEventArgs.cs
- MessagePropertyFilter.cs
- Pool.cs
- DesignerVerb.cs
- KeyedHashAlgorithm.cs
- MultiBinding.cs
- XmlSchemaSimpleContentExtension.cs
- FixedTextSelectionProcessor.cs
- PngBitmapEncoder.cs
- IsolatedStorageFileStream.cs
- EventManager.cs
- ObjectListCommandCollection.cs
- DetailsViewPageEventArgs.cs
- ControlBindingsCollection.cs
- ComplexTypeEmitter.cs
- AnnotationStore.cs
- TextBox.cs
- IPPacketInformation.cs
- LowerCaseStringConverter.cs
- WebDisplayNameAttribute.cs
- DataIdProcessor.cs
- DecimalKeyFrameCollection.cs
- BridgeDataRecord.cs
- DispatcherFrame.cs
- BooleanFacetDescriptionElement.cs
- JournalEntryStack.cs
- CompilerResults.cs
- HttpResponseInternalWrapper.cs
- CopyOnWriteList.cs
- DependencyPropertyKind.cs
- ToolTip.cs
- Simplifier.cs
- TableChangeProcessor.cs
- XmlDomTextWriter.cs
- ListBoxChrome.cs
- TrackingServices.cs
- WindowsSysHeader.cs
- SrgsText.cs
- AnnotationResourceChangedEventArgs.cs
- RequestNavigateEventArgs.cs
- HealthMonitoringSection.cs