internal static void OpenGenericTypeDoesNotContainUnresolvableTypeArguments( Type serviceType, Type implementationType, string parameterName) { if (serviceType.ContainsGenericParameters() && implementationType.ContainsGenericParameters()) { var builder = new GenericTypeBuilder(serviceType, implementationType); if (!builder.OpenGenericImplementationCanBeAppliedToServiceType()) { string error = StringResources.OpenGenericTypeContainsUnresolvableTypeArguments(implementationType); throw new ArgumentException(error, parameterName); } } }