1 // -----------------------------------------------------------------------
\r
2 // Copyright (c) Microsoft Corporation. All rights reserved.
\r
3 // -----------------------------------------------------------------------
\r
5 using System.ComponentModel.Composition;
\r
6 using System.Collections.Generic;
\r
7 using System.Linq.Expressions;
\r
8 using System.ComponentModel.Composition.Primitives;
\r
10 namespace System.ComponentModel.Composition.Factories
\r
12 partial class ImportDefinitionFactory
\r
14 private class DerivedContractBasedImportDefinition : ContractBasedImportDefinition
\r
16 private readonly string _contractName;
\r
17 private readonly ImportCardinality _cardinality;
\r
18 private readonly bool _isRecomposable;
\r
19 private readonly bool _isPrerequisite;
\r
20 private readonly IEnumerable<KeyValuePair<string, Type>> _requiredMetadata;
\r
22 public DerivedContractBasedImportDefinition(string contractName, IEnumerable<KeyValuePair<string, Type>> requiredMetadata, ImportCardinality cardinality, bool isRecomposable, bool isPrerequisite)
\r
24 _contractName = contractName;
\r
25 _cardinality = cardinality;
\r
26 _isRecomposable = isRecomposable;
\r
27 _isPrerequisite = isPrerequisite;
\r
28 _requiredMetadata = requiredMetadata;
\r
31 public override IEnumerable<KeyValuePair<string, Type>> RequiredMetadata
\r
33 get { return _requiredMetadata ?? base.RequiredMetadata; }
\r
36 public override ImportCardinality Cardinality
\r
38 get { return _cardinality; }
\r
41 public override bool IsPrerequisite
\r
43 get { return _isPrerequisite; }
\r
46 public override bool IsRecomposable
\r
48 get { return _isRecomposable; }
\r
51 public override string ContractName
\r
53 get { return _contractName; }
\r