TypeToStringValueConverter.cs source code in C# .NET

Source code for the .NET framework in C#

                        

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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK