Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bdff84b9aa |
+1
-1
@@ -350,4 +350,4 @@ MigrationBackup/
|
||||
.ionide/
|
||||
/tests/ProxyInterfaceSourceGeneratorTests/Destination/Disposable/*.g.cs
|
||||
|
||||
.idea/.idea.ProxyInterfaceSourceGenerator Solution/.idea/
|
||||
.idea/
|
||||
|
||||
@@ -7,7 +7,9 @@ namespace ProxyInterfaceConsumer
|
||||
public int HouseNumber { get; set; }
|
||||
|
||||
public event EventHandler<EventArgs> MyEvent;
|
||||
|
||||
public int Weird { get; set; }
|
||||
|
||||
public int Weird2()
|
||||
{
|
||||
return 0;
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace ProxyInterfaceGenerator
|
||||
public Type Type {{ get; }}
|
||||
public bool ProxyBaseClasses {{ get; }}
|
||||
public ProxyClassAccessibility Accessibility {{ get; }}
|
||||
public string[] MembersToIgnore {{ get; }}
|
||||
public string[]? MembersToIgnore {{ get; }}
|
||||
|
||||
public ProxyAttribute(Type type) : this(type, false, ProxyClassAccessibility.Public)
|
||||
{{
|
||||
@@ -41,11 +41,15 @@ namespace ProxyInterfaceGenerator
|
||||
{{
|
||||
}}
|
||||
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility) : this(type, proxyBaseClasses, accessibility, Array.Empty<string>())
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility) : this(type, proxyBaseClasses, accessibility, null)
|
||||
{{
|
||||
}}
|
||||
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility, string[] membersToIgnore)
|
||||
public ProxyAttribute(Type type, string[]? membersToIgnore) : this(type, false, ProxyClassAccessibility.Public, null)
|
||||
{{
|
||||
}}
|
||||
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility, string[]? membersToIgnore)
|
||||
{{
|
||||
Type = type;
|
||||
ProxyBaseClasses = proxyBaseClasses;
|
||||
|
||||
@@ -34,7 +34,8 @@ internal class ProxyData
|
||||
string fullMetadataTypeName,
|
||||
List<string> usings,
|
||||
bool proxyBaseClasses,
|
||||
ProxyClassAccessibility accessibility, string[] membersToIgnore)
|
||||
ProxyClassAccessibility accessibility,
|
||||
string[] membersToIgnore)
|
||||
{
|
||||
Namespace = @namespace ?? throw new ArgumentNullException(nameof(@namespace));
|
||||
NamespaceDot = namespaceDot ?? throw new ArgumentNullException(nameof(namespaceDot));
|
||||
|
||||
@@ -93,12 +93,12 @@ internal static class AttributeArgumentListParser
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool TryParseAsStringArray(ExpressionSyntax expressionSyntax, out string[] value)
|
||||
private static bool TryParseAsStringArray(ExpressionSyntax expressionSyntax, [NotNullWhen(true)] out string[] value)
|
||||
{
|
||||
if (expressionSyntax is ImplicitArrayCreationExpressionSyntax lmplicitArrayCreationExpressionSyntax)
|
||||
if (expressionSyntax is ImplicitArrayCreationExpressionSyntax implicitArrayCreationExpressionSyntax)
|
||||
{
|
||||
var strings = new List<string>();
|
||||
foreach (var expression in lmplicitArrayCreationExpressionSyntax.Initializer.Expressions)
|
||||
foreach (var expression in implicitArrayCreationExpressionSyntax.Initializer.Expressions)
|
||||
{
|
||||
if (expression.GetFirstToken().Value is string s)
|
||||
{
|
||||
@@ -108,7 +108,8 @@ internal static class AttributeArgumentListParser
|
||||
value = strings.ToArray();
|
||||
return true;
|
||||
}
|
||||
value = Array.Empty<string>();
|
||||
|
||||
value = default;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -5,5 +5,6 @@ internal record ProxyInterfaceGeneratorAttributeArguments(string FullyQualifiedD
|
||||
public bool ProxyBaseClasses { get; set; }
|
||||
|
||||
public ProxyClassAccessibility Accessibility { get; set; }
|
||||
|
||||
public string[] MembersToIgnore { get; set; } = Array.Empty<string>();
|
||||
}
|
||||
@@ -86,9 +86,9 @@ internal static class MemberHelper
|
||||
var membersQuery = classSymbol.Symbol.GetMembers().OfType<T>()
|
||||
.Where(m => m.DeclaredAccessibility == Accessibility.Public);
|
||||
|
||||
var f = filters.ToList();
|
||||
f.Add(x => !proxyData.MembersToIgnore.Contains(x.Name));
|
||||
foreach (var filter in f)
|
||||
var allFilters = filters.ToList();
|
||||
allFilters.Add(x => !proxyData.MembersToIgnore.Contains(x.Name));
|
||||
foreach (var filter in allFilters)
|
||||
{
|
||||
membersQuery = membersQuery.Where(filter);
|
||||
}
|
||||
|
||||
+7
-3
@@ -21,7 +21,7 @@ namespace ProxyInterfaceGenerator
|
||||
public Type Type { get; }
|
||||
public bool ProxyBaseClasses { get; }
|
||||
public ProxyClassAccessibility Accessibility { get; }
|
||||
public string[] MembersToIgnore { get; }
|
||||
public string[]? MembersToIgnore { get; }
|
||||
|
||||
public ProxyAttribute(Type type) : this(type, false, ProxyClassAccessibility.Public)
|
||||
{
|
||||
@@ -35,11 +35,15 @@ namespace ProxyInterfaceGenerator
|
||||
{
|
||||
}
|
||||
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility) : this(type, proxyBaseClasses, accessibility, Array.Empty<string>())
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility) : this(type, proxyBaseClasses, accessibility, null)
|
||||
{
|
||||
}
|
||||
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility, string[] membersToIgnore)
|
||||
public ProxyAttribute(Type type, string[]? membersToIgnore) : this(type, false, ProxyClassAccessibility.Public, null)
|
||||
{
|
||||
}
|
||||
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility, string[]? membersToIgnore)
|
||||
{
|
||||
Type = type;
|
||||
ProxyBaseClasses = proxyBaseClasses;
|
||||
|
||||
+7
-3
@@ -21,7 +21,7 @@ namespace ProxyInterfaceGenerator
|
||||
public Type Type { get; }
|
||||
public bool ProxyBaseClasses { get; }
|
||||
public ProxyClassAccessibility Accessibility { get; }
|
||||
public string[] MembersToIgnore { get; }
|
||||
public string[]? MembersToIgnore { get; }
|
||||
|
||||
public ProxyAttribute(Type type) : this(type, false, ProxyClassAccessibility.Public)
|
||||
{
|
||||
@@ -35,11 +35,15 @@ namespace ProxyInterfaceGenerator
|
||||
{
|
||||
}
|
||||
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility) : this(type, proxyBaseClasses, accessibility, Array.Empty<string>())
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility) : this(type, proxyBaseClasses, accessibility, null)
|
||||
{
|
||||
}
|
||||
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility, string[] membersToIgnore)
|
||||
public ProxyAttribute(Type type, string[]? membersToIgnore) : this(type, false, ProxyClassAccessibility.Public, null)
|
||||
{
|
||||
}
|
||||
|
||||
public ProxyAttribute(Type type, bool proxyBaseClasses, ProxyClassAccessibility accessibility, string[]? membersToIgnore)
|
||||
{
|
||||
Type = type;
|
||||
ProxyBaseClasses = proxyBaseClasses;
|
||||
|
||||
Reference in New Issue
Block a user