Skip to content

Commit 3c9cdf2

Browse files
committed
serializes member attributes
1 parent 181a4cc commit 3c9cdf2

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

Rubberduck.Parsing/Symbols/SerializableDeclaration.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,22 @@ public SerializableDeclarationTree(SerializableDeclaration node, IEnumerable<Ser
2727
}
2828
}
2929

30+
[DataContract]
31+
public class SerializableMemberAttribute
32+
{
33+
public SerializableMemberAttribute(string name, IEnumerable<string> values)
34+
{
35+
Name = name;
36+
Values = values;
37+
}
38+
39+
[DataMember(IsRequired = true)]
40+
public readonly string Name;
41+
42+
[DataMember(IsRequired = true)]
43+
public readonly IEnumerable<string> Values;
44+
}
45+
3046
public class SerializableDeclaration
3147
{
3248
public SerializableDeclaration()
@@ -36,9 +52,9 @@ public SerializableDeclaration(Declaration declaration)
3652
{
3753
IdentifierName = declaration.IdentifierName;
3854

39-
//todo: figure these out
40-
//Annotations = declaration.Annotations.Cast<AnnotationBase>().ToArray();
41-
//Attributes = declaration.Attributes.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.ToArray());
55+
Attributes = declaration.Attributes
56+
.Select(a => new SerializableMemberAttribute(a.Key, a.Value))
57+
.ToList();
4258

4359
ParentScope = declaration.ParentScope;
4460
TypeHint = declaration.TypeHint;
@@ -56,6 +72,8 @@ public SerializableDeclaration(Declaration declaration)
5672
ComponentName = declaration.QualifiedName.QualifiedModuleName.ComponentName;
5773
}
5874

75+
public List<SerializableMemberAttribute> Attributes { get; set; }
76+
5977
public string IdentifierName { get; set; }
6078

6179
public string MemberName { get; set; }

0 commit comments

Comments
 (0)