Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
    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));
    }