private static ExportCardinalityCheckResult MatchCardinality(EnumerableCardinality actualCardinality, ImportCardinality importCardinality) { switch (actualCardinality) { case EnumerableCardinality.Zero: if (importCardinality == ImportCardinality.ExactlyOne) { return(ExportCardinalityCheckResult.NoExports); } break; case EnumerableCardinality.TwoOrMore: if (importCardinality.IsAtMostOne()) { return(ExportCardinalityCheckResult.TooManyExports); } break; default: Assumes.IsTrue(actualCardinality == EnumerableCardinality.One); break; } return(ExportCardinalityCheckResult.Match); }
private static ExportCardinalityCheckResult MatchCardinality(EnumerableCardinality actualCardinality, ImportCardinality importCardinality) { switch (actualCardinality) { case EnumerableCardinality.Zero: if (importCardinality == ImportCardinality.ExactlyOne) { return(ExportCardinalityCheckResult.NoExports); } break; case EnumerableCardinality.TwoOrMore: if (importCardinality.IsAtMostOne()) { return(ExportCardinalityCheckResult.TooManyExports); } break; default: if (actualCardinality != EnumerableCardinality.One) { throw new Exception(SR.Diagnostic_InternalExceptionMessage); } break; } return(ExportCardinalityCheckResult.Match); }
private T GetExportedValueCore <T>(string contractName, ImportCardinality cardinality) { Assumes.IsTrue(cardinality.IsAtMostOne()); Export export = GetExportsCore(typeof(T), (Type)null, contractName, cardinality).SingleOrDefault(); return((export != null) ? ExportServices.GetCastedExportedValue <T>(export) : default(T)); }
private T?GetExportedValueCore <T>(string?contractName, ImportCardinality cardinality) { if (!cardinality.IsAtMostOne()) { throw new Exception(SR.Diagnostic_InternalExceptionMessage); } Export?export = GetExportsCore(typeof(T), (Type?)null, contractName, cardinality).SingleOrDefault(); return((export != null) ? ExportServices.GetCastedExportedValue <T>(export) : default);