1 // -----------------------------------------------------------------------
\r
2 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
3 // -----------------------------------------------------------------------
\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
14 namespace System.ComponentModel.Composition.ReflectionModel
\r
16 internal class ReflectionMemberImportDefinition : ReflectionImportDefinition
\r
18 private LazyMemberInfo _importingLazyMember;
\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
31 Assumes.NotNull(contractName);
\r
33 this._importingLazyMember = importingLazyMember;
\r
36 public override ImportingItem ToImportingItem()
\r
38 ReflectionWritableMember member = this.ImportingLazyMember.ToReflectionWriteableMember();
\r
39 return new ImportingMember(this, member, new ImportType(member.ReturnType, this.Cardinality));
\r
42 public LazyMemberInfo ImportingLazyMember
\r
44 get { return this._importingLazyMember; }
\r
47 protected override string GetDisplayName()
\r
49 return string.Format(
\r
50 CultureInfo.CurrentCulture,
\r
51 "{0} (ContractName=\"{1}\")", // NOLOC
\r
52 this.ImportingLazyMember.ToReflectionMember().GetDisplayName(),
\r