Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / EditorOptionAttribute.cs / 1305376 / EditorOptionAttribute.cs
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.Activities.Presentation.PropertyEditing
{
using System.Runtime;
using System.Collections;
[Fx.Tag.XamlVisible(false)]
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Class, AllowMultiple = true)]
sealed class EditorOptionsAttribute : Attribute
{
public string Name { get; set; }
public object Value { get; set; }
//TypeId is needed so that multiple EditorOptionsAttribute could be added to the same type/property
public override object TypeId
{
get
{
return new EditorOptionsAttributeTypeId
{
BaseTypeId = base.TypeId,
Name = this.Name,
Value = this.Value
};
}
}
public static T GetOptionValue(IEnumerable attributes, string optionName, T defaultValue)
{
object optionValue;
if (TryGetOptionValue(attributes, optionName, out optionValue))
{
return (T)optionValue;
}
return defaultValue;
}
public static bool TryGetOptionValue(IEnumerable attributes, string optionName, out object optionValue)
{
foreach (Attribute attribute in attributes)
{
EditorOptionsAttribute optionAttribute = attribute as EditorOptionsAttribute;
if (optionAttribute != null && optionAttribute.Name.Equals(optionName))
{
optionValue = optionAttribute.Value;
return true;
}
}
optionValue = null;
return false;
}
//A class to uniquely identify a name-value pair
class EditorOptionsAttributeTypeId
{
public object BaseTypeId { get; set; }
public string Name { get; set; }
public object Value { get; set; }
public override bool Equals(object obj)
{
EditorOptionsAttributeTypeId that = obj as EditorOptionsAttributeTypeId;
if (that == null) return false;
return this.BaseTypeId == that.BaseTypeId &&
string.Equals(this.Name, that.Name) &&
object.Equals(this.Value, that.Value);
}
public override int GetHashCode()
{
return
(BaseTypeId == null ? 0 : BaseTypeId.GetHashCode()) ^
(Name == null ? 0 : Name.GetHashCode()) ^
(Value == null ? 0 : Value.GetHashCode());
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.Activities.Presentation.PropertyEditing
{
using System.Runtime;
using System.Collections;
[Fx.Tag.XamlVisible(false)]
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Class, AllowMultiple = true)]
sealed class EditorOptionsAttribute : Attribute
{
public string Name { get; set; }
public object Value { get; set; }
//TypeId is needed so that multiple EditorOptionsAttribute could be added to the same type/property
public override object TypeId
{
get
{
return new EditorOptionsAttributeTypeId
{
BaseTypeId = base.TypeId,
Name = this.Name,
Value = this.Value
};
}
}
public static T GetOptionValue(IEnumerable attributes, string optionName, T defaultValue)
{
object optionValue;
if (TryGetOptionValue(attributes, optionName, out optionValue))
{
return (T)optionValue;
}
return defaultValue;
}
public static bool TryGetOptionValue(IEnumerable attributes, string optionName, out object optionValue)
{
foreach (Attribute attribute in attributes)
{
EditorOptionsAttribute optionAttribute = attribute as EditorOptionsAttribute;
if (optionAttribute != null && optionAttribute.Name.Equals(optionName))
{
optionValue = optionAttribute.Value;
return true;
}
}
optionValue = null;
return false;
}
//A class to uniquely identify a name-value pair
class EditorOptionsAttributeTypeId
{
public object BaseTypeId { get; set; }
public string Name { get; set; }
public object Value { get; set; }
public override bool Equals(object obj)
{
EditorOptionsAttributeTypeId that = obj as EditorOptionsAttributeTypeId;
if (that == null) return false;
return this.BaseTypeId == that.BaseTypeId &&
string.Equals(this.Name, that.Name) &&
object.Equals(this.Value, that.Value);
}
public override int GetHashCode()
{
return
(BaseTypeId == null ? 0 : BaseTypeId.GetHashCode()) ^
(Name == null ? 0 : Name.GetHashCode()) ^
(Value == null ? 0 : Value.GetHashCode());
}
}
}
}
// 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
- ServiceOperationParameter.cs
- RuleInfoComparer.cs
- VisualBrush.cs
- UpDownBase.cs
- DocumentPageViewAutomationPeer.cs
- DataGridToolTip.cs
- SqlNodeAnnotations.cs
- FlowDocumentReaderAutomationPeer.cs
- PropertyGridEditorPart.cs
- HandlerFactoryCache.cs
- DPCustomTypeDescriptor.cs
- GPPOINT.cs
- MergeLocalizationDirectives.cs
- HwndSourceParameters.cs
- FakeModelPropertyImpl.cs
- OverrideMode.cs
- PropertyDescriptor.cs
- Sentence.cs
- NetWebProxyFinder.cs
- HashMembershipCondition.cs
- SendKeys.cs
- AsyncStreamReader.cs
- StackSpiller.Bindings.cs
- EnlistmentState.cs
- Registry.cs
- Version.cs
- StatusBar.cs
- DockingAttribute.cs
- AccessKeyManager.cs
- WindowsIPAddress.cs
- ContentPosition.cs
- DataGridViewCellParsingEventArgs.cs
- EventProviderWriter.cs
- SubMenuStyleCollection.cs
- WebSysDescriptionAttribute.cs
- GridViewRow.cs
- PropertyOverridesDialog.cs
- SQLDouble.cs
- GestureRecognizer.cs
- SqlConnectionPoolGroupProviderInfo.cs
- MediaContextNotificationWindow.cs
- SystemIcmpV6Statistics.cs
- LineBreakRecord.cs
- DataGridViewHitTestInfo.cs
- SiteMapPath.cs
- EntityConnection.cs
- DbConnectionOptions.cs
- GroupDescription.cs
- ParameterCollection.cs
- EditorZoneBase.cs
- ColumnPropertiesGroup.cs
- DecimalAnimationBase.cs
- LocalizableAttribute.cs
- AppDomainProtocolHandler.cs
- SystemIPGlobalProperties.cs
- InvokePatternIdentifiers.cs
- WindowsImpersonationContext.cs
- TextDecorationCollectionConverter.cs
- GridEntryCollection.cs
- RealProxy.cs
- ExtendedProtectionPolicyElement.cs
- XmlWellformedWriter.cs
- CancelEventArgs.cs
- DataSourceXmlAttributeAttribute.cs
- PathNode.cs
- ExtentKey.cs
- ImportFileRequest.cs
- FocusWithinProperty.cs
- SelectionBorderGlyph.cs
- RowType.cs
- COM2ExtendedTypeConverter.cs
- Triangle.cs
- DeflateEmulationStream.cs
- CodeActivityContext.cs
- Stack.cs
- SystemNetHelpers.cs
- ObjectCloneHelper.cs
- RowUpdatingEventArgs.cs
- GeometryCombineModeValidation.cs
- StringFormat.cs
- MessageFormatterConverter.cs
- DesignerDataTable.cs
- ComponentChangedEvent.cs
- ByteAnimationUsingKeyFrames.cs
- StreamSecurityUpgradeProvider.cs
- rsa.cs
- ListItemParagraph.cs
- CompositeFontFamily.cs
- Int64Converter.cs
- SmtpNegotiateAuthenticationModule.cs
- SQLString.cs
- XmlHierarchicalEnumerable.cs
- typedescriptorpermissionattribute.cs
- FormParameter.cs
- AttachmentCollection.cs
- UpdatePanel.cs
- MessageDroppedTraceRecord.cs
- ProvidePropertyAttribute.cs
- TCEAdapterGenerator.cs
- InputProviderSite.cs