[runtime] Fix corlib out of date error with disabled COM
[mono.git] / mcs / class / referencesource / System.Activities.Presentation / System.Activities.Presentation / System / Activities / Presentation / ActivityDelegateInfo.cs
1 //----------------------------------------------------------------
2 // <copyright company="Microsoft Corporation">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 //----------------------------------------------------------------
6
7 namespace System.Activities.Presentation
8 {
9     using System.Activities.Presentation.Metadata;
10     using System.Activities.Presentation.Model;
11
12     internal class ActivityDelegateInfo : IActivityDelegateFactory
13     {
14         public ActivityDelegateInfo(ModelItem modelItem, string propertyName)
15         {
16             this.ModelItem = modelItem;
17             this.PropertyName = propertyName;
18             this.DelegateType = this.ModelItem.Properties[this.PropertyName].PropertyType;
19         }
20
21         public ModelItem ModelItem { get; private set; }
22
23         public string PropertyName { get; private set; }
24         
25         public Type DelegateType { get; private set; }
26
27         public EditingContext EditingContext
28         {
29             get
30             {
31                 return this.ModelItem.GetEditingContext();
32             }
33         }
34
35         public ActivityDelegate Create()
36         {
37             ActivityDelegate delegateObject = Activator.CreateInstance(this.DelegateType) as ActivityDelegate;
38             ActivityDelegateMetadata metadata = ActivityDelegateUtilities.GetMetadata(this.DelegateType);
39             ActivityDelegateUtilities.FillDelegate(delegateObject, metadata);
40             return delegateObject;
41         }
42     }
43 }