f6b3c217e05648e599605437b6c3b0635b0b3e85
[mono.git] / mcs / class / referencesource / System.Activities.Presentation / System.Activities.Presentation / System / Activities / Presentation / View / VisualBasicReferenceValidationFeature.cs
1 // <copyright>
2 //   Copyright (c) Microsoft Corporation.  All rights reserved.
3 // </copyright>
4
5 namespace System.Activities.Presentation.View
6 {
7     using System.Activities.Presentation.Validation;
8     using System.Activities.Validation;
9     using System.Collections.Generic;
10     using System.Collections.ObjectModel;
11     using System.Runtime;
12     using Microsoft.Activities.Presentation;
13     using Microsoft.VisualBasic.Activities;
14
15     internal class VisualBasicReferenceValidationFeature : Feature
16     {        
17         private static readonly Type VisualBasicReferenceType = typeof(VisualBasicReference<>);
18
19         public override void Initialize(EditingContext context, Type modelType)
20         {
21             Fx.Assert(
22                 modelType.IsGenericType && (modelType.GetGenericTypeDefinition() == VisualBasicReferenceType),
23                 "This Feature should only apply to VisualBasicReference<>");
24
25             ValidationService validationService = context.Services.GetService<ValidationService>();
26             if (validationService != null && WorkflowDesigner.GetTargetFramework(context).IsLessThan45())
27             {                
28                 validationService.Settings.AdditionalConstraints.Add(VisualBasicReferenceType, new List<Constraint> { VisualBasicDesignerHelper.NameShadowingConstraint });
29             }
30         }
31     }
32 }