Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / ObjectConverter.cs / 2 / ObjectConverter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* An object that can convert from one object type to another, potentially using a format
* string if the conversion is to a string.
*
* Copyright (c) 1999 Microsoft Corporation
*/
namespace System.Web.UI {
using System.Runtime.Serialization.Formatters;
using System.ComponentModel;
using System.Globalization;
using System;
using System.Security.Permissions;
//
///
///
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[Obsolete("The recommended alternative is System.Convert and String.Format. http://go.microsoft.com/fwlink/?linkid=14202")]
public sealed class ObjectConverter {
internal static readonly char [] formatSeparator = new char[] { ','};
public ObjectConverter() { }
///
///
///
public static object ConvertValue(object value, Type toType, string formatString) {
// Workaround for now to handle inability of reflection to deal with Null.
if (value == null || Convert.IsDBNull(value)) {
return value;
}
Type fromType = value.GetType();
if (toType.IsAssignableFrom(fromType)) {
return value;
}
// for now, just hit the sweet spots.
if (typeof(string).IsAssignableFrom(fromType)) {
if (typeof(int).IsAssignableFrom(toType)) {
return Convert.ToInt32((string)value, CultureInfo.InvariantCulture);
}
else if (typeof(bool).IsAssignableFrom(toType)) {
return Convert.ToBoolean((string)value, CultureInfo.InvariantCulture);
}
else if (typeof(DateTime).IsAssignableFrom(toType)) {
return Convert.ToDateTime((string)value, CultureInfo.InvariantCulture);
}
else if (typeof(Decimal).IsAssignableFrom(toType)) {
TypeConverter tc = new DecimalConverter();
return tc.ConvertFromInvariantString((string)value);
}
else if (typeof(Double).IsAssignableFrom(toType)) {
return Convert.ToDouble((string)value, CultureInfo.InvariantCulture);
}
else if (typeof(Int16).IsAssignableFrom(toType)) {
return Convert.ToInt16((Int16)value, CultureInfo.InvariantCulture);
}
else {
throw new ArgumentException(
SR.GetString(SR.Cannot_convert_from_to, fromType.ToString(), toType.ToString()));
}
}
else if (typeof(string).IsAssignableFrom(toType)) {
if (typeof(int).IsAssignableFrom(fromType)) {
return ((int)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else if (typeof(bool).IsAssignableFrom(fromType)) {
string [] tokens=null;
if (formatString != null) {
tokens = formatString.Split(formatSeparator);
if (tokens.Length != 2) {
tokens = null;
}
}
if ((bool)value) {
if (tokens != null) {
return tokens[0];
}
else {
return "true";
}
}
else {
if (tokens != null) {
return tokens[1];
}
else {
return "false";
}
}
}
else if (typeof(DateTime).IsAssignableFrom(fromType)) {
return((DateTime)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else if (typeof(Decimal).IsAssignableFrom(fromType)) {
return ((Decimal)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else if (typeof(Double).IsAssignableFrom(fromType)) {
return ((Double)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else if (typeof(Single).IsAssignableFrom(fromType)) {
return ((Single)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else if (typeof(Int16).IsAssignableFrom(fromType)) {
return ((Int16)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else {
throw new ArgumentException(
SR.GetString(SR.Cannot_convert_from_to, fromType.ToString(), toType.ToString()));
}
}
else {
throw new ArgumentException(
SR.GetString(SR.Cannot_convert_from_to, fromType.ToString(), toType.ToString()));
}
}
/*
string t1;
int t2;
bool t3;
DateTime t4;
bool t5;
Currency t6;
string t7, t8, t9, t10, t11;
string t12;
void Test()
{
t1 = (string)ObjectConverter.ConvertValue("Should be a string", typeof(string), null);
t2 = (int)ObjectConverter.ConvertValue("32", typeof(int), null);
t3 = (bool)ObjectConverter.ConvertValue("true", typeof(bool), null);
t4 = (DateTime)ObjectConverter.ConvertValue("11/14/62", typeof(DateTime), null);
t5 = (bool)ObjectConverter.ConvertValue("false", typeof(bool), null);
t6 = (Currency)ObjectConverter.ConvertValue("$12.50", typeof(Currency), null);
t7 = (string)ObjectConverter.ConvertValue(32, typeof(string), "#");
t8 = (string)ObjectConverter.ConvertValue(true, typeof(string), "yes;no");
t9 = (string)ObjectConverter.ConvertValue(false, typeof(string), "yes;no");
t10 = (string)ObjectConverter.ConvertValue(DateTime.Now, typeof(string), "hh:mm");
t11 = (string)ObjectConverter.ConvertValue(new Currency(12), typeof(string), "C");
}
public static void Main(string[] args)
{
new ObjectConverter().Test();
}
*/
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* An object that can convert from one object type to another, potentially using a format
* string if the conversion is to a string.
*
* Copyright (c) 1999 Microsoft Corporation
*/
namespace System.Web.UI {
using System.Runtime.Serialization.Formatters;
using System.ComponentModel;
using System.Globalization;
using System;
using System.Security.Permissions;
//
///
///
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[Obsolete("The recommended alternative is System.Convert and String.Format. http://go.microsoft.com/fwlink/?linkid=14202")]
public sealed class ObjectConverter {
internal static readonly char [] formatSeparator = new char[] { ','};
public ObjectConverter() { }
///
///
///
public static object ConvertValue(object value, Type toType, string formatString) {
// Workaround for now to handle inability of reflection to deal with Null.
if (value == null || Convert.IsDBNull(value)) {
return value;
}
Type fromType = value.GetType();
if (toType.IsAssignableFrom(fromType)) {
return value;
}
// for now, just hit the sweet spots.
if (typeof(string).IsAssignableFrom(fromType)) {
if (typeof(int).IsAssignableFrom(toType)) {
return Convert.ToInt32((string)value, CultureInfo.InvariantCulture);
}
else if (typeof(bool).IsAssignableFrom(toType)) {
return Convert.ToBoolean((string)value, CultureInfo.InvariantCulture);
}
else if (typeof(DateTime).IsAssignableFrom(toType)) {
return Convert.ToDateTime((string)value, CultureInfo.InvariantCulture);
}
else if (typeof(Decimal).IsAssignableFrom(toType)) {
TypeConverter tc = new DecimalConverter();
return tc.ConvertFromInvariantString((string)value);
}
else if (typeof(Double).IsAssignableFrom(toType)) {
return Convert.ToDouble((string)value, CultureInfo.InvariantCulture);
}
else if (typeof(Int16).IsAssignableFrom(toType)) {
return Convert.ToInt16((Int16)value, CultureInfo.InvariantCulture);
}
else {
throw new ArgumentException(
SR.GetString(SR.Cannot_convert_from_to, fromType.ToString(), toType.ToString()));
}
}
else if (typeof(string).IsAssignableFrom(toType)) {
if (typeof(int).IsAssignableFrom(fromType)) {
return ((int)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else if (typeof(bool).IsAssignableFrom(fromType)) {
string [] tokens=null;
if (formatString != null) {
tokens = formatString.Split(formatSeparator);
if (tokens.Length != 2) {
tokens = null;
}
}
if ((bool)value) {
if (tokens != null) {
return tokens[0];
}
else {
return "true";
}
}
else {
if (tokens != null) {
return tokens[1];
}
else {
return "false";
}
}
}
else if (typeof(DateTime).IsAssignableFrom(fromType)) {
return((DateTime)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else if (typeof(Decimal).IsAssignableFrom(fromType)) {
return ((Decimal)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else if (typeof(Double).IsAssignableFrom(fromType)) {
return ((Double)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else if (typeof(Single).IsAssignableFrom(fromType)) {
return ((Single)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else if (typeof(Int16).IsAssignableFrom(fromType)) {
return ((Int16)value).ToString(formatString, CultureInfo.InvariantCulture);
}
else {
throw new ArgumentException(
SR.GetString(SR.Cannot_convert_from_to, fromType.ToString(), toType.ToString()));
}
}
else {
throw new ArgumentException(
SR.GetString(SR.Cannot_convert_from_to, fromType.ToString(), toType.ToString()));
}
}
/*
string t1;
int t2;
bool t3;
DateTime t4;
bool t5;
Currency t6;
string t7, t8, t9, t10, t11;
string t12;
void Test()
{
t1 = (string)ObjectConverter.ConvertValue("Should be a string", typeof(string), null);
t2 = (int)ObjectConverter.ConvertValue("32", typeof(int), null);
t3 = (bool)ObjectConverter.ConvertValue("true", typeof(bool), null);
t4 = (DateTime)ObjectConverter.ConvertValue("11/14/62", typeof(DateTime), null);
t5 = (bool)ObjectConverter.ConvertValue("false", typeof(bool), null);
t6 = (Currency)ObjectConverter.ConvertValue("$12.50", typeof(Currency), null);
t7 = (string)ObjectConverter.ConvertValue(32, typeof(string), "#");
t8 = (string)ObjectConverter.ConvertValue(true, typeof(string), "yes;no");
t9 = (string)ObjectConverter.ConvertValue(false, typeof(string), "yes;no");
t10 = (string)ObjectConverter.ConvertValue(DateTime.Now, typeof(string), "hh:mm");
t11 = (string)ObjectConverter.ConvertValue(new Currency(12), typeof(string), "C");
}
public static void Main(string[] args)
{
new ObjectConverter().Test();
}
*/
}
}
// 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
- FixedSOMImage.cs
- OpCopier.cs
- _NegoState.cs
- BaseTransportHeaders.cs
- HttpCachePolicy.cs
- MimeTypeMapper.cs
- ItemCheckEvent.cs
- FlatButtonAppearance.cs
- QilDataSource.cs
- ImageField.cs
- ApplicationHost.cs
- SystemUnicastIPAddressInformation.cs
- UserNamePasswordServiceCredential.cs
- FreezableOperations.cs
- DelegatingConfigHost.cs
- EDesignUtil.cs
- StubHelpers.cs
- Control.cs
- OleDbConnectionFactory.cs
- CheckBoxField.cs
- Decoder.cs
- DataColumnPropertyDescriptor.cs
- XmlByteStreamWriter.cs
- ComponentChangingEvent.cs
- DataGridViewRowCollection.cs
- MultiPageTextView.cs
- OpCodes.cs
- PriorityRange.cs
- HyperlinkAutomationPeer.cs
- XmlSiteMapProvider.cs
- AbsoluteQuery.cs
- FacetEnabledSchemaElement.cs
- SchemaInfo.cs
- XmlSerializerFactory.cs
- CheckBoxField.cs
- CodeArrayCreateExpression.cs
- TextSelectionHighlightLayer.cs
- DateTimeValueSerializer.cs
- ViewService.cs
- ProgressiveCrcCalculatingStream.cs
- StorageEndPropertyMapping.cs
- DataSourceXmlAttributeAttribute.cs
- DesignerImageAdapter.cs
- TextRangeAdaptor.cs
- ImageIndexConverter.cs
- UrlAuthFailureHandler.cs
- GeneralTransformCollection.cs
- ModifierKeysValueSerializer.cs
- SqlCachedBuffer.cs
- LZCodec.cs
- WmfPlaceableFileHeader.cs
- AccessControlList.cs
- GZipStream.cs
- VisualStyleRenderer.cs
- Quad.cs
- XmlDocumentFieldSchema.cs
- LineMetrics.cs
- StylusTip.cs
- NTAccount.cs
- CodeCatchClause.cs
- login.cs
- BitmapFrameEncode.cs
- MemoryFailPoint.cs
- QilInvokeLateBound.cs
- ProcessModelSection.cs
- ScriptingSectionGroup.cs
- OleDbError.cs
- PartialTrustHelpers.cs
- InvokeWebService.cs
- MethodBuilderInstantiation.cs
- PathFigureCollection.cs
- TypeConvertions.cs
- SqlInfoMessageEvent.cs
- FileCodeGroup.cs
- VectorCollectionConverter.cs
- DataSourceCacheDurationConverter.cs
- __TransparentProxy.cs
- QuaternionConverter.cs
- TableSectionStyle.cs
- HyperLink.cs
- FileLogRecordStream.cs
- Debugger.cs
- InvalidProgramException.cs
- BitmapMetadataBlob.cs
- BCLDebug.cs
- ServiceElement.cs
- Matrix3DValueSerializer.cs
- DecimalAnimation.cs
- WebConvert.cs
- Security.cs
- ObjectHelper.cs
- ConvertEvent.cs
- StreamInfo.cs
- CommandField.cs
- ContentElementAutomationPeer.cs
- DataGridViewImageColumn.cs
- FamilyTypeface.cs
- ImageListStreamer.cs
- IndexOutOfRangeException.cs
- ToolStripCollectionEditor.cs