File: cdf\src\NetFx40\Tools\System.Activities.Presentation\System\Activities\Presentation\Xaml\MultiTargetingXamlSchemaContext.cs
Project: ndp\System.Data.csproj (System.Data)
//----------------------------------------------------------------
// <copyright company="Microsoft Corporation">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//----------------------------------------------------------------
 
namespace System.Activities.Presentation
{
    using System.Activities.Presentation.Hosting;
    using System.Runtime;
    using System.Xaml;
    using Microsoft.Activities.Presentation.Xaml;
 
    internal class MultiTargetingXamlSchemaContext : XamlSchemaContext
    {
        private MultiTargetingSupportService multiTargetingService;
 
        public MultiTargetingXamlSchemaContext(MultiTargetingSupportService multiTargetingService)
        {
            Fx.Assert(multiTargetingService != null, "multiTargetingService should not be null");
 
            this.multiTargetingService = multiTargetingService;
        }
 
        protected override XamlType GetXamlType(string xamlNamespace, string name, params XamlType[] typeArguments)
        {
            XamlType xamlType = base.GetXamlType(xamlNamespace, name, typeArguments);
 
            if (xamlType == null || xamlType.UnderlyingType == null)
            {
                return xamlType;
            }
 
            ResolverResult resolverResult = MultiTargetingTypeResolver.Resolve(this.multiTargetingService, xamlType.UnderlyingType);
            return MultiTargetingTypeResolver.GetXamlType(resolverResult, xamlType);
        }
    }
}