Fix bugs in sizing TableLayoutPanel (Xamarin bug 18638)
[mono.git] / mcs / class / System.ComponentModel.Composition / src / ComponentModel / System / ComponentModel / Composition / ReflectionModel / ReflectionMemberImportDefinition.cs
1 // -----------------------------------------------------------------------\r
2 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
3 // -----------------------------------------------------------------------\r
4 using System;\r
5 using System.Collections;\r
6 using System.Collections.Generic;\r
7 using System.ComponentModel.Composition.ReflectionModel;\r
8 using System.Globalization;\r
9 using System.Reflection;\r
10 using Microsoft.Internal;\r
11 using Microsoft.Internal.Collections;\r
12 using System.ComponentModel.Composition.Primitives;\r
13 \r
14 namespace System.ComponentModel.Composition.ReflectionModel\r
15 {\r
16     internal class ReflectionMemberImportDefinition : ReflectionImportDefinition\r
17     {\r
18         private LazyMemberInfo _importingLazyMember;\r
19 \r
20         public ReflectionMemberImportDefinition(\r
21             LazyMemberInfo importingLazyMember,\r
22             string contractName, \r
23             string requiredTypeIdentity,\r
24             IEnumerable<KeyValuePair<string, Type>> requiredMetadata,\r
25             ImportCardinality cardinality, \r
26             bool isRecomposable, \r
27             CreationPolicy requiredCreationPolicy,\r
28             ICompositionElement origin) \r
29             : base(contractName, requiredTypeIdentity, requiredMetadata, cardinality, isRecomposable, false, requiredCreationPolicy, origin)\r
30         {\r
31             Assumes.NotNull(contractName);\r
32 \r
33             this._importingLazyMember = importingLazyMember;\r
34         }\r
35 \r
36         public override ImportingItem ToImportingItem()\r
37         {\r
38             ReflectionWritableMember member = this.ImportingLazyMember.ToReflectionWriteableMember();\r
39             return new ImportingMember(this, member, new ImportType(member.ReturnType, this.Cardinality));\r
40         }\r
41 \r
42         public LazyMemberInfo ImportingLazyMember\r
43         {\r
44             get { return this._importingLazyMember; } \r
45         }\r
46 \r
47         protected override string GetDisplayName()\r
48         {\r
49             return string.Format(\r
50                 CultureInfo.CurrentCulture,\r
51                 "{0} (ContractName=\"{1}\")",    // NOLOC\r
52                 this.ImportingLazyMember.ToReflectionMember().GetDisplayName(),\r
53                 this.ContractName);\r
54         }\r
55     }\r
56 }\r