add MembersToIgnore

This commit is contained in:
Adam Hathcock
2024-05-21 13:03:43 +01:00
parent 894b5d5049
commit 5568a98e0b
15 changed files with 240 additions and 7 deletions
@@ -27,6 +27,7 @@ namespace ProxyInterfaceGenerator
public Type Type {{ get; }}
public bool ProxyBaseClasses {{ get; }}
public ProxyClassAccessibility Accessibility {{ get; }}
public string[] MembersToIgnore {{ get; }}
public ProxyAttribute(Type type) : this(type, false, ProxyClassAccessibility.Public)
{{
@@ -40,11 +41,16 @@ namespace ProxyInterfaceGenerator
{{
}}
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility)
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility) : this(type, proxyBaseClasses, accessibility, Array.Empty<string>())
{{
}}
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility, string[] membersToIgnore)
{{
Type = type;
ProxyBaseClasses = proxyBaseClasses;
Accessibility = accessibility;
MembersToIgnore = membersToIgnore;
}}
}}
@@ -12,7 +12,7 @@ internal static class AttributeArgumentListParser
{
public static ProxyInterfaceGeneratorAttributeArguments ParseAttributeArguments(AttributeArgumentListSyntax? argumentList, SemanticModel semanticModel)
{
if (argumentList is null || argumentList.Arguments.Count is < 1 or > 3)
if (argumentList is null || argumentList.Arguments.Count is < 1 or > 4)
{
throw new ArgumentException("The ProxyAttribute requires 1, 2 or 3 arguments.");
}
@@ -5,4 +5,5 @@ internal record ProxyInterfaceGeneratorAttributeArguments(string FullyQualifiedD
public bool ProxyBaseClasses { get; set; }
public ProxyClassAccessibility Accessibility { get; set; }
public string[] MembersToIgnore { get; set; } = Array.Empty<string>();
}