2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2025-09-13 12:43:17 +00:00
This commit is contained in:
2025-08-29 20:51:27 +03:00
parent 5b7c6a864f
commit 89d395f83f
13 changed files with 65 additions and 44 deletions

View File

@@ -174,17 +174,17 @@ $@" public partial class {ci.Name} : IResource {{
classInfo = new ResourceClassInfo
(
Key: key,
Name: cls.Name,
ClassDeclaration: cds,
ClassSymbol: cls,
Fields: exportedFields,
HasInterface: hasInterface,
HasTrigger: hasTrigger
key,
cls.Name,
cds,
cls,
exportedFields,
hasInterface,
hasTrigger
);
}
return new PerClass(importUrls, classInfo);
return new PerClass(classInfo, importUrls);
}
private static ImmutableArray<ResourceClassInfo> MergePartials(ImmutableArray<ResourceClassInfo> list)
@@ -294,19 +294,39 @@ $@" public partial class {ci.Name} : IResource {{
}
// === Data carriers for the pipeline ===
private readonly record struct PerClass(
ImmutableArray<string> ImportUrls,
ResourceClassInfo? ClassInfo
);
private readonly record struct PerClass {
public PerClass(ResourceClassInfo? classInfo, ImmutableArray<string> importUrls)
{
this.ImportUrls = importUrls;
this.ClassInfo = classInfo;
}
private sealed record ResourceClassInfo(
string Key,
string Name,
ClassDeclarationSyntax ClassDeclaration,
ITypeSymbol ClassSymbol,
List<IFieldSymbol> Fields,
bool HasInterface,
bool HasTrigger
);
public readonly ImmutableArray<string> ImportUrls;
public readonly ResourceClassInfo? ClassInfo;
}
private sealed record ResourceClassInfo {
public ResourceClassInfo(string key, string name ,
ClassDeclarationSyntax classDeclaration,
ITypeSymbol classSymbol, List<IFieldSymbol> fileds, bool hasInterface, bool hasTrigger)
{
Key = key;
Name = name;
ClassDeclaration = classDeclaration;
ClassSymbol = classSymbol;
Fields = fileds;
HasInterface = hasInterface;
HasTrigger = hasTrigger;
}
public string Key;
public string Name;
public ClassDeclarationSyntax ClassDeclaration;
public ITypeSymbol ClassSymbol;
public List<IFieldSymbol> Fields;
public bool HasInterface;
public bool HasTrigger;
}
}
}

View File

@@ -82,7 +82,7 @@ public static class ResourceProxy
var props = from p in type.GetProperties()
where p.CanWrite && p.GetSetMethod().IsVirtual &&
p.GetCustomAttributes(typeof(ResourceProperty), false).Count() > 0
p.GetCustomAttributes(typeof(ExportAttribute), false).Count() > 0
select p;
#endif