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 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); }
internal static ExportCardinalityCheckResult CheckCardinality(ImportDefinition definition, IEnumerable <Export> exports) { EnumerableCardinality actualCardinality = exports.GetCardinality(); switch (actualCardinality) { case EnumerableCardinality.Zero: if (definition.Cardinality == ImportCardinality.ExactlyOne) { return(ExportCardinalityCheckResult.NoExports); } break; case EnumerableCardinality.TwoOrMore: if (definition.Cardinality.IsAtMostOne()) { return(ExportCardinalityCheckResult.TooManyExports); } break; default: Assumes.IsTrue(actualCardinality == EnumerableCardinality.One); break; } return(ExportCardinalityCheckResult.Match); }
internal static ExportCardinalityCheckResult CheckCardinality <T>(ImportDefinition definition, IEnumerable <T>?enumerable) { EnumerableCardinality actualCardinality = (enumerable != null) ? enumerable.GetCardinality() : EnumerableCardinality.Zero; return(MatchCardinality(actualCardinality, definition.Cardinality)); }