Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / View / TypeToStringValueConverter.cs / 1305376 / TypeToStringValueConverter.cs
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.Activities.Presentation.View
{
using System.Diagnostics;
using System.Globalization;
using System.Windows.Data;
using System.Runtime;
class TypeToStringValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Fx.Assert(targetType.Equals(typeof(string)), "TypeToStringValueConverter cannot convert a type to type " + targetType.FullName);
string target = null;
if (value != null)
{
Fx.Assert(value is Type, string.Format(CultureInfo.InvariantCulture, "TypeToStringValueConverter cannot convert from type {0} to string", value.GetType().FullName));
Type editedType = (Type)value;
//handle primitive types
if (editedType.IsPrimitive || editedType.IsValueType ||
editedType == typeof(string) || editedType == typeof(object))
{
target = editedType.Name;
}
//and other ones
else
{
target = editedType.FullName;
}
}
return target;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
Fx.Assert(targetType.Equals(typeof(Type)), "TypeToStringValueConverter cannot convert string back to type " + targetType.FullName);
Type target = null;
string stringValue = value as string;
if (!string.IsNullOrEmpty(stringValue))
{
// try to get the type from the type name
target = Type.GetType(stringValue, false, true);
//handle primitive types
if (null == target)
{
stringValue = string.Format(CultureInfo.InvariantCulture, "System.{0}", stringValue);
target = Type.GetType(stringValue, false, true);
}
if (null == target)
{
return Binding.DoNothing;
}
}
return target;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.Activities.Presentation.View
{
using System.Diagnostics;
using System.Globalization;
using System.Windows.Data;
using System.Runtime;
class TypeToStringValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Fx.Assert(targetType.Equals(typeof(string)), "TypeToStringValueConverter cannot convert a type to type " + targetType.FullName);
string target = null;
if (value != null)
{
Fx.Assert(value is Type, string.Format(CultureInfo.InvariantCulture, "TypeToStringValueConverter cannot convert from type {0} to string", value.GetType().FullName));
Type editedType = (Type)value;
//handle primitive types
if (editedType.IsPrimitive || editedType.IsValueType ||
editedType == typeof(string) || editedType == typeof(object))
{
target = editedType.Name;
}
//and other ones
else
{
target = editedType.FullName;
}
}
return target;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
Fx.Assert(targetType.Equals(typeof(Type)), "TypeToStringValueConverter cannot convert string back to type " + targetType.FullName);
Type target = null;
string stringValue = value as string;
if (!string.IsNullOrEmpty(stringValue))
{
// try to get the type from the type name
target = Type.GetType(stringValue, false, true);
//handle primitive types
if (null == target)
{
stringValue = string.Format(CultureInfo.InvariantCulture, "System.{0}", stringValue);
target = Type.GetType(stringValue, false, true);
}
if (null == target)
{
return Binding.DoNothing;
}
}
return target;
}
}
}
// 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
- DelegateHelpers.Generated.cs
- QueryContinueDragEventArgs.cs
- LicenseProviderAttribute.cs
- SystemIPInterfaceStatistics.cs
- Type.cs
- JsonFormatGeneratorStatics.cs
- FixedSOMTableRow.cs
- XmlQueryRuntime.cs
- ScriptDescriptor.cs
- NameHandler.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- MimeReflector.cs
- SqlInternalConnectionTds.cs
- KerberosSecurityTokenProvider.cs
- NopReturnReader.cs
- FileFormatException.cs
- TypeNameConverter.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- AddInStore.cs
- AppLevelCompilationSectionCache.cs
- XPathAncestorIterator.cs
- _LazyAsyncResult.cs
- AssociativeAggregationOperator.cs
- WindowsAuthenticationEventArgs.cs
- HttpListener.cs
- SnapshotChangeTrackingStrategy.cs
- Stream.cs
- PersonalizationDictionary.cs
- RegisteredHiddenField.cs
- DispatcherObject.cs
- XPathScanner.cs
- StringBuilder.cs
- NativeCppClassAttribute.cs
- CodeTypeParameterCollection.cs
- EdmProviderManifest.cs
- EntityContainerEntitySet.cs
- UnknownBitmapEncoder.cs
- DebugInfoExpression.cs
- DescendantOverDescendantQuery.cs
- PriorityBinding.cs
- SingleAnimationBase.cs
- HyperLinkField.cs
- DictionaryContent.cs
- AbandonedMutexException.cs
- CookieParameter.cs
- ParsedRoute.cs
- SqlDataSourceQueryConverter.cs
- CalendarDateRangeChangingEventArgs.cs
- SrgsGrammar.cs
- DataBinder.cs
- CultureInfo.cs
- IdnMapping.cs
- ManagementExtension.cs
- XmlValidatingReaderImpl.cs
- Variable.cs
- StrokeNode.cs
- CodeArrayIndexerExpression.cs
- BackStopAuthenticationModule.cs
- RightsManagementManager.cs
- SettingsAttributes.cs
- ChoiceConverter.cs
- TabRenderer.cs
- TextRenderer.cs
- GridViewRowCollection.cs
- formatter.cs
- XmlSortKey.cs
- TypeDelegator.cs
- RightsManagementPermission.cs
- BooleanToSelectiveScrollingOrientationConverter.cs
- MessageSecurityProtocolFactory.cs
- AnonymousIdentificationSection.cs
- FileChangeNotifier.cs
- SelectedPathEditor.cs
- Memoizer.cs
- SystemGatewayIPAddressInformation.cs
- HttpException.cs
- GCHandleCookieTable.cs
- EventHandlingScope.cs
- MetadataCollection.cs
- SqlLiftWhereClauses.cs
- NavigationProgressEventArgs.cs
- RuntimeHandles.cs
- NetCodeGroup.cs
- CodeAttributeArgument.cs
- FamilyTypeface.cs
- DesignBindingValueUIHandler.cs
- WindowsScrollBar.cs
- DataListItem.cs
- DotExpr.cs
- Duration.cs
- UnauthorizedWebPart.cs
- TabPage.cs
- ListDictionary.cs
- WindowShowOrOpenTracker.cs
- DbException.cs
- WebBrowserContainer.cs
- __Filters.cs
- DeviceSpecificDialogCachedState.cs
- RichTextBoxDesigner.cs
- ConsoleKeyInfo.cs