/// <summary> /// Gets a code template. /// </summary> /// <param name="generationType">The type of the class containing the generation logic.</param> /// <param name="codeTemplateKind">The code template kind.</param> /// <param name="keyMethodKinds">The key method kinds.</param> /// <param name="codeSnippetKind">Optional code snippet kind. Default is None (not treated as a code snippet).</param> /// <param name="throwIfDoesNotExist">Throw if the code template does not exist.</param> /// <returns> /// The code template corresponding to the specified parameters. /// </returns> public static string GetCodeTemplate( this Type generationType, CodeTemplateKind codeTemplateKind, KeyMethodKinds keyMethodKinds, CodeSnippetKind codeSnippetKind = CodeSnippetKind.None, bool throwIfDoesNotExist = true) { var result = generationType.GetCodeTemplate("All", codeTemplateKind, keyMethodKinds, codeSnippetKind, throwIfDoesNotExist); return(result); }
/// <summary> /// Gets a code template. /// </summary> /// <param name="generationType">The type of the class containing the generation logic.</param> /// <param name="classifiedHierarchyKind">The classified hierarchy kind.</param> /// <param name="codeTemplateKind">The code template kind.</param> /// <param name="keyMethodKinds">The key method kinds.</param> /// <param name="codeSnippetKind">Optional code snippet kind. Default is None (not treated as a code snippet).</param> /// <param name="throwIfDoesNotExist">Throw if the code template does not exist.</param> /// <returns> /// The code template corresponding to the specified parameters. /// </returns> public static string GetCodeTemplate( this Type generationType, ClassifiedHierarchyKind classifiedHierarchyKind, CodeTemplateKind codeTemplateKind, KeyMethodKinds keyMethodKinds, CodeSnippetKind codeSnippetKind = CodeSnippetKind.None, bool throwIfDoesNotExist = true) { var result = generationType.GetCodeTemplate(classifiedHierarchyKind.ToString(), codeTemplateKind, keyMethodKinds, codeSnippetKind, throwIfDoesNotExist); return(result); }
private static string GetCodeTemplate( this Type generationType, string hierarchyKind, CodeTemplateKind codeTemplateKind, KeyMethodKinds keyMethodKinds, CodeSnippetKind codeSnippetKind = CodeSnippetKind.None, bool throwIfDoesNotExist = true) { new { keyMethodKinds }.AsArg().Must().NotBeEqualTo(KeyMethodKinds.Unknown); var codeSnippetToken = codeSnippetKind == CodeSnippetKind.None ? string.Empty : codeSnippetKind + "."; var resourceNameSuffix = Invariant($"{generationType.Name}.{codeTemplateKind}.{codeSnippetToken}{hierarchyKind}.{keyMethodKinds}.txt"); var resourceName = typeof(GenerationShared).Assembly.GetManifestResourceNames().SingleOrDefault(_ => _.EndsWith(resourceNameSuffix, StringComparison.Ordinal)); if (throwIfDoesNotExist) { if (resourceName == null) { throw new InvalidOperationException("An embedded resource with this suffix does not exist: " + resourceNameSuffix); } } else { if (resourceName == null) { return(null); } } var result = AssemblyHelper.ReadEmbeddedResourceAsString(resourceName, addCallerNamespace: false); return(result); }