Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / CompMod / System / ComponentModel / DecimalConverter.cs / 1 / DecimalConverter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.ComponentModel {
using Microsoft.Win32;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.Remoting;
using System.Runtime.Serialization.Formatters;
using System.Security.Permissions;
///
/// Provides a type converter to convert
/// objects to and from various
/// other representations.
///
[HostProtection(SharedState = true)]
public class DecimalConverter : BaseNumberConverter {
///
/// Determines whether this editor will attempt to convert hex (0x or #) strings
///
internal override bool AllowHex {
get {
return false;
}
}
///
/// The Type this converter is targeting (e.g. Int16, UInt32, etc.)
///
internal override Type TargetType {
get {
return typeof(Decimal);
}
}
///
/// Gets a value indicating whether this converter can
/// convert an object to the given destination type using the context.
///
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (destinationType == typeof(InstanceDescriptor)) {
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
/// Converts the given object to another type. The most common types to convert
/// are to and from a string object. The default implementation will make a call
/// to ToString on the object if the object is valid and if the destination
/// type is string. If this cannot convert to the desitnation type, this will
/// throw a NotSupportedException.
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (destinationType == null) {
throw new ArgumentNullException("destinationType");
}
if (destinationType == typeof(InstanceDescriptor) && value is Decimal) {
object[] args = new object[] { Decimal.GetBits((Decimal)value) };
MemberInfo member = typeof(Decimal).GetConstructor(new Type[] {typeof(Int32[])});
Debug.Assert(member != null, "Could not convert decimal to member. Did someone change method name / signature and not update DecimalConverter?");
if (member != null) {
return new InstanceDescriptor(member, args);
}
else {
return null;
}
}
return base.ConvertTo(context, culture, value, destinationType);
}
///
/// Convert the given value to a string using the given radix
///
internal override object FromString(string value, int radix) {
return Convert.ToDecimal(value, CultureInfo.CurrentCulture);
}
///
/// Convert the given value to a string using the given formatInfo
///
internal override object FromString(string value, NumberFormatInfo formatInfo) {
return Decimal.Parse(value, NumberStyles.Float, formatInfo);
}
///
/// Convert the given value to a string using the given CultureInfo
///
internal override object FromString(string value, CultureInfo culture){
return Decimal.Parse(value, culture);
}
///
/// Convert the given value from a string using the given formatInfo
///
internal override string ToString(object value, NumberFormatInfo formatInfo) {
return ((Decimal)value).ToString("G", formatInfo);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.ComponentModel {
using Microsoft.Win32;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Runtime.Remoting;
using System.Runtime.Serialization.Formatters;
using System.Security.Permissions;
///
/// Provides a type converter to convert
/// objects to and from various
/// other representations.
///
[HostProtection(SharedState = true)]
public class DecimalConverter : BaseNumberConverter {
///
/// Determines whether this editor will attempt to convert hex (0x or #) strings
///
internal override bool AllowHex {
get {
return false;
}
}
///
/// The Type this converter is targeting (e.g. Int16, UInt32, etc.)
///
internal override Type TargetType {
get {
return typeof(Decimal);
}
}
///
/// Gets a value indicating whether this converter can
/// convert an object to the given destination type using the context.
///
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (destinationType == typeof(InstanceDescriptor)) {
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
/// Converts the given object to another type. The most common types to convert
/// are to and from a string object. The default implementation will make a call
/// to ToString on the object if the object is valid and if the destination
/// type is string. If this cannot convert to the desitnation type, this will
/// throw a NotSupportedException.
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (destinationType == null) {
throw new ArgumentNullException("destinationType");
}
if (destinationType == typeof(InstanceDescriptor) && value is Decimal) {
object[] args = new object[] { Decimal.GetBits((Decimal)value) };
MemberInfo member = typeof(Decimal).GetConstructor(new Type[] {typeof(Int32[])});
Debug.Assert(member != null, "Could not convert decimal to member. Did someone change method name / signature and not update DecimalConverter?");
if (member != null) {
return new InstanceDescriptor(member, args);
}
else {
return null;
}
}
return base.ConvertTo(context, culture, value, destinationType);
}
///
/// Convert the given value to a string using the given radix
///
internal override object FromString(string value, int radix) {
return Convert.ToDecimal(value, CultureInfo.CurrentCulture);
}
///
/// Convert the given value to a string using the given formatInfo
///
internal override object FromString(string value, NumberFormatInfo formatInfo) {
return Decimal.Parse(value, NumberStyles.Float, formatInfo);
}
///
/// Convert the given value to a string using the given CultureInfo
///
internal override object FromString(string value, CultureInfo culture){
return Decimal.Parse(value, culture);
}
///
/// Convert the given value from a string using the given formatInfo
///
internal override string ToString(object value, NumberFormatInfo formatInfo) {
return ((Decimal)value).ToString("G", formatInfo);
}
}
}
// 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
- ConstraintManager.cs
- ProviderBase.cs
- SafeRightsManagementEnvironmentHandle.cs
- BaseTemplateBuildProvider.cs
- AssemblyBuilder.cs
- WpfKnownMemberInvoker.cs
- AliasGenerator.cs
- FtpWebRequest.cs
- SendActivityValidator.cs
- MenuItem.cs
- HttpCapabilitiesBase.cs
- WpfXamlType.cs
- listviewsubitemcollectioneditor.cs
- Decoder.cs
- EntityDesignerBuildProvider.cs
- StructuredTypeEmitter.cs
- Size3D.cs
- CompilerTypeWithParams.cs
- Canvas.cs
- HtmlUtf8RawTextWriter.cs
- TrustManager.cs
- MultiSelectRootGridEntry.cs
- LineGeometry.cs
- ResourcePool.cs
- RectangleConverter.cs
- EntityDataSourceQueryBuilder.cs
- SaveFileDialog.cs
- SqlTriggerAttribute.cs
- AbstractSvcMapFileLoader.cs
- UriTemplateCompoundPathSegment.cs
- InputScope.cs
- MdiWindowListStrip.cs
- CompilationUnit.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- RelationshipType.cs
- CaseInsensitiveHashCodeProvider.cs
- DataGridViewRowEventArgs.cs
- PolicyManager.cs
- ThreadAbortException.cs
- FlowPanelDesigner.cs
- ConnectionsZone.cs
- DelegateTypeInfo.cs
- ListenerElementsCollection.cs
- SqlRemoveConstantOrderBy.cs
- TextHidden.cs
- Debugger.cs
- PartialCachingControl.cs
- ThemeableAttribute.cs
- TemplateKey.cs
- FontSizeConverter.cs
- ImmComposition.cs
- RadioButtonFlatAdapter.cs
- RangeBaseAutomationPeer.cs
- PrintPreviewControl.cs
- AbandonedMutexException.cs
- PixelFormatConverter.cs
- EncodingStreamWrapper.cs
- RTTrackingProfile.cs
- TemplatePartAttribute.cs
- GenericUriParser.cs
- PeerDuplexChannelListener.cs
- Border.cs
- OleDbCommandBuilder.cs
- UriTemplateDispatchFormatter.cs
- Error.cs
- HandleRef.cs
- ToggleButtonAutomationPeer.cs
- DetailsView.cs
- Path.cs
- DefaultTraceListener.cs
- ArgumentReference.cs
- StrokeCollection2.cs
- TextTreeDeleteContentUndoUnit.cs
- SafeEventLogWriteHandle.cs
- SafeNativeMethodsOther.cs
- arclist.cs
- PolicyManager.cs
- DataSourceProvider.cs
- TextEndOfSegment.cs
- ConnectionOrientedTransportManager.cs
- SpecularMaterial.cs
- StringReader.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- IconConverter.cs
- UnsafeNativeMethods.cs
- IIS7UserPrincipal.cs
- XmlElementAttribute.cs
- HostExecutionContextManager.cs
- StatusBarItemAutomationPeer.cs
- MenuItem.cs
- DataGridViewCellMouseEventArgs.cs
- ObservableCollection.cs
- EmptyStringExpandableObjectConverter.cs
- CurrentChangedEventManager.cs
- DBConnection.cs
- SqlServices.cs
- HyperLinkDataBindingHandler.cs
- ProxyHwnd.cs
- SamlDelegatingWriter.cs
- SchemaElementDecl.cs