File: System\ServiceModel\XamlIntegration\EndpointIdentityConverter.cs
Project: ndp\cdf\src\NetFx40\System.ServiceModel.Activities\System.ServiceModel.Activities.csproj (System.ServiceModel.Activities)
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//----------------------------------------------------------------
 
namespace System.ServiceModel.XamlIntegration
{
    using System;
    using System.ComponentModel;
    using System.Diagnostics.CodeAnalysis;
    using System.Globalization;
    using System.Runtime;
    using System.Windows.Markup;
 
    [SuppressMessage(FxCop.Category.Xaml, "XAML1012",
        Justification = "ConvertFrom methods are not required for MarkupExtension converters")]
    public class EndpointIdentityConverter : TypeConverter
    {
        public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
        {
            if (destinationType == typeof(MarkupExtension))
            {
                return true;
            }
            return base.CanConvertTo(context, destinationType);
        }
 
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            if (value == null)
            {
                return null;
            }
            if (destinationType == typeof(MarkupExtension) && value is EndpointIdentity)
            {
                if (value is SpnEndpointIdentity)
                {
                    return new SpnEndpointIdentityExtension((SpnEndpointIdentity)value);
                }
                else if (value is UpnEndpointIdentity)
                {
                    return new UpnEndpointIdentityExtension((UpnEndpointIdentity)value);
                }
                else
                {
                    return new EndpointIdentityExtension((EndpointIdentity)value);
                }
            }
            return base.ConvertTo(context, culture, value, destinationType);
        }
    }
}