public IEnumerable <string> ValidationErrors() { if (Name.IsEmpty()) { yield return(ErrorMessages.DatatypeIsRequired); } else { if (Name.HasAnInternalSpace()) { yield return(ErrorMessages.NameCannotContainAnInternalSpace); } if (Name.ContainsInvalidCharacter()) { yield return(ErrorMessages.NameCannotContainSpecialCharacters); } } if (ContainingNamespace.HasAnInternalSpace()) { yield return(ErrorMessages.NamespaceCannotContainAnInternalSpace); } if (ContainingNamespace.IsNotValidNamespace()) { yield return(ErrorMessages.NamespaceIsNotValid); } }
public bool Matches(Datatype datatype, bool isCaseSensitive = true) { StringComparison comparisonMethod = isCaseSensitive ? StringComparison.CurrentCulture : StringComparison.CurrentCultureIgnoreCase; return(Name.Equals(datatype.Name.Trim(), comparisonMethod) && ContainingNamespace.Equals(datatype.ContainingNamespace.Trim(), comparisonMethod)); }
public void Execute(SourceGeneratorContext context) { var mainMethod = context.Compilation.GetEntryPoint(context.CancellationToken); var source = $@" using System; namespace {mainMethod!.ContainingNamespace.ToDisplayString()}; public static partial class {mainMethod.ContainingType.Name} {{ static partial void HelloFrom(string name) {{ Console.WriteLine($""Generator says: Hi from '{{name}}'""); }} }} "; // add the source code to the compilation context.AddSource("generatedSource", SourceText.From(source, Encoding.UTF8)); }