Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / ComponentModel / DefaultValueAttribute.cs / 1305376 / DefaultValueAttribute.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.ComponentModel {
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Runtime.InteropServices;
#if !SILVERLIGHT
using System.Runtime.Serialization.Formatters;
#endif
using System.Security.Permissions;
///
/// Specifies the default value for a property.
///
#if !SILVERLIGHT
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]
#endif
[AttributeUsage(AttributeTargets.All)]
public class DefaultValueAttribute : Attribute {
///
/// This is the default value.
///
private object value;
///
/// Initializes a new instance of the class, converting the
/// specified value to the
/// specified type, and using the U.S. English culture as the
/// translation
/// context.
///
public DefaultValueAttribute(Type type, string value) {
// The try/catch here is because attributes should never throw exceptions. We would fail to
// load an otherwise normal class.
try {
#if !SILVERLIGHT
this.value = TypeDescriptor.GetConverter(type).ConvertFromInvariantString(value);
#else
if (type.IsEnum) {
this.value = Enum.Parse(type, value, true);
} else if (type == typeof(TimeSpan)) {
this.value = TimeSpan.Parse(value);
} else if (type.Module == typeof(string).Module) {
this.value = Convert.ChangeType(value, type, CultureInfo.InvariantCulture);
}
#endif
}
catch {
#if !SILVERLIGHT
Debug.Fail("Default value attribute of type " + type.FullName + " threw converting from the string '" + value + "'.");
#else
Debug.WriteLine("Default value attribute of type " + type.FullName + " threw converting from the string '" + value + "'.");
#endif
}
}
///
/// Initializes a new instance of the class using a Unicode
/// character.
///
public DefaultValueAttribute(char value) {
this.value = value;
}
///
/// Initializes a new instance of the class using an 8-bit unsigned
/// integer.
///
public DefaultValueAttribute(byte value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a 16-bit signed
/// integer.
///
public DefaultValueAttribute(short value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a 32-bit signed
/// integer.
///
public DefaultValueAttribute(int value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a 64-bit signed
/// integer.
///
public DefaultValueAttribute(long value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a
/// single-precision floating point
/// number.
///
public DefaultValueAttribute(float value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a
/// double-precision floating point
/// number.
///
public DefaultValueAttribute(double value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a
/// value.
///
public DefaultValueAttribute(bool value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a .
///
public DefaultValueAttribute(string value) {
this.value = value;
}
///
/// Initializes a new instance of the
/// class.
///
public DefaultValueAttribute(object value) {
this.value = value;
}
///
///
/// Gets the default value of the property this
/// attribute is
/// bound to.
///
///
public virtual object Value {
get {
return value;
}
}
public override bool Equals(object obj) {
if (obj == this) {
return true;
}
DefaultValueAttribute other = obj as DefaultValueAttribute;
if (other != null) {
if (Value != null) {
return Value.Equals(other.Value);
}
else {
return (other.Value == null);
}
}
return false;
}
public override int GetHashCode() {
return base.GetHashCode();
}
protected void SetValue(object value) {
this.value = value;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.ComponentModel {
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Runtime.InteropServices;
#if !SILVERLIGHT
using System.Runtime.Serialization.Formatters;
#endif
using System.Security.Permissions;
///
/// Specifies the default value for a property.
///
#if !SILVERLIGHT
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]
#endif
[AttributeUsage(AttributeTargets.All)]
public class DefaultValueAttribute : Attribute {
///
/// This is the default value.
///
private object value;
///
/// Initializes a new instance of the class, converting the
/// specified value to the
/// specified type, and using the U.S. English culture as the
/// translation
/// context.
///
public DefaultValueAttribute(Type type, string value) {
// The try/catch here is because attributes should never throw exceptions. We would fail to
// load an otherwise normal class.
try {
#if !SILVERLIGHT
this.value = TypeDescriptor.GetConverter(type).ConvertFromInvariantString(value);
#else
if (type.IsEnum) {
this.value = Enum.Parse(type, value, true);
} else if (type == typeof(TimeSpan)) {
this.value = TimeSpan.Parse(value);
} else if (type.Module == typeof(string).Module) {
this.value = Convert.ChangeType(value, type, CultureInfo.InvariantCulture);
}
#endif
}
catch {
#if !SILVERLIGHT
Debug.Fail("Default value attribute of type " + type.FullName + " threw converting from the string '" + value + "'.");
#else
Debug.WriteLine("Default value attribute of type " + type.FullName + " threw converting from the string '" + value + "'.");
#endif
}
}
///
/// Initializes a new instance of the class using a Unicode
/// character.
///
public DefaultValueAttribute(char value) {
this.value = value;
}
///
/// Initializes a new instance of the class using an 8-bit unsigned
/// integer.
///
public DefaultValueAttribute(byte value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a 16-bit signed
/// integer.
///
public DefaultValueAttribute(short value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a 32-bit signed
/// integer.
///
public DefaultValueAttribute(int value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a 64-bit signed
/// integer.
///
public DefaultValueAttribute(long value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a
/// single-precision floating point
/// number.
///
public DefaultValueAttribute(float value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a
/// double-precision floating point
/// number.
///
public DefaultValueAttribute(double value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a
/// value.
///
public DefaultValueAttribute(bool value) {
this.value = value;
}
///
/// Initializes a new instance of the class using a .
///
public DefaultValueAttribute(string value) {
this.value = value;
}
///
/// Initializes a new instance of the
/// class.
///
public DefaultValueAttribute(object value) {
this.value = value;
}
///
///
/// Gets the default value of the property this
/// attribute is
/// bound to.
///
///
public virtual object Value {
get {
return value;
}
}
public override bool Equals(object obj) {
if (obj == this) {
return true;
}
DefaultValueAttribute other = obj as DefaultValueAttribute;
if (other != null) {
if (Value != null) {
return Value.Equals(other.Value);
}
else {
return (other.Value == null);
}
}
return false;
}
public override int GetHashCode() {
return base.GetHashCode();
}
protected void SetValue(object value) {
this.value = value;
}
}
}
// 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
- ObjectQueryProvider.cs
- ParameterBuilder.cs
- WebPartConnectionsDisconnectVerb.cs
- ListenerConstants.cs
- PermissionSetTriple.cs
- ExpressionParser.cs
- PinnedBufferMemoryStream.cs
- SiteMapNodeItem.cs
- StreamInfo.cs
- SmtpNtlmAuthenticationModule.cs
- FontStretches.cs
- CheckableControlBaseAdapter.cs
- LogLogRecord.cs
- ToolStripItem.cs
- CallbackDebugBehavior.cs
- ServiceNotStartedException.cs
- VectorCollectionValueSerializer.cs
- Attachment.cs
- EntityDesignerUtils.cs
- CasesDictionary.cs
- HttpCacheVaryByContentEncodings.cs
- SchemaDeclBase.cs
- ToolStripItemImageRenderEventArgs.cs
- TabControlAutomationPeer.cs
- MailWebEventProvider.cs
- PropertyDescriptorGridEntry.cs
- Internal.cs
- AttachmentCollection.cs
- WSFederationHttpBindingElement.cs
- DataGridViewSelectedColumnCollection.cs
- KeyValuePairs.cs
- SQLBytes.cs
- AnnouncementEndpointElement.cs
- Lease.cs
- ClaimTypeElement.cs
- CharUnicodeInfo.cs
- TypeHelpers.cs
- DynamicILGenerator.cs
- PartitionResolver.cs
- FlowDocumentPage.cs
- DataProtection.cs
- StatusBarPanelClickEvent.cs
- ToolboxComponentsCreatedEventArgs.cs
- DataGridTextBox.cs
- VerticalAlignConverter.cs
- HttpContextServiceHost.cs
- ExpressionVisitor.cs
- SourceLineInfo.cs
- LongPath.cs
- PolicyLevel.cs
- LicenseProviderAttribute.cs
- Enlistment.cs
- XmlAutoDetectWriter.cs
- WindowsListViewItem.cs
- FlowDocumentReader.cs
- ConsoleTraceListener.cs
- SingleStorage.cs
- DataSetUtil.cs
- WpfKnownTypeInvoker.cs
- MappingItemCollection.cs
- RegexWorker.cs
- LayoutEngine.cs
- XPathNode.cs
- SQLBytesStorage.cs
- TypeUsage.cs
- AsmxEndpointPickerExtension.cs
- ClientSideProviderDescription.cs
- TextSchema.cs
- AdvancedBindingPropertyDescriptor.cs
- AsnEncodedData.cs
- ToolstripProfessionalRenderer.cs
- TextBreakpoint.cs
- Padding.cs
- EdmValidator.cs
- TableDetailsCollection.cs
- CompiledIdentityConstraint.cs
- PagesSection.cs
- CommentEmitter.cs
- DifferencingCollection.cs
- ConfigPathUtility.cs
- MessageEventSubscriptionService.cs
- QuaternionAnimationBase.cs
- XmlRawWriterWrapper.cs
- OleDbDataAdapter.cs
- ToolStripItemDesigner.cs
- Lease.cs
- PropertyIDSet.cs
- CommandBinding.cs
- Matrix3DConverter.cs
- SBCSCodePageEncoding.cs
- ClientConvert.cs
- SegmentInfo.cs
- HttpCacheVary.cs
- GradientStop.cs
- ProvidersHelper.cs
- EntityStoreSchemaFilterEntry.cs
- ProviderConnectionPointCollection.cs
- InkCanvasSelectionAdorner.cs
- PackageDigitalSignature.cs
- XmlSchemaSimpleTypeList.cs