diff --git a/src/AsmResolver.PE/DotNet/Metadata/Tables/EventAttributes.cs b/src/AsmResolver.PE/DotNet/Metadata/Tables/EventAttributes.cs
index aa7e08f5b..aa456faff 100644
--- a/src/AsmResolver.PE/DotNet/Metadata/Tables/EventAttributes.cs
+++ b/src/AsmResolver.PE/DotNet/Metadata/Tables/EventAttributes.cs
@@ -8,6 +8,10 @@ namespace AsmResolver.PE.DotNet.Metadata.Tables
[Flags]
public enum EventAttributes : ushort
{
+ ///
+ /// Specifies that the event has no attributes.
+ ///
+ None = 0x0000,
///
/// Specifies that the event is using a special name.
///
diff --git a/test/AsmResolver.DotNet.Tests/EventDefinitionTest.cs b/test/AsmResolver.DotNet.Tests/EventDefinitionTest.cs
index e45e52b2c..1306fe580 100644
--- a/test/AsmResolver.DotNet.Tests/EventDefinitionTest.cs
+++ b/test/AsmResolver.DotNet.Tests/EventDefinitionTest.cs
@@ -16,6 +16,33 @@ public void ReadName()
Assert.NotNull(@event);
}
+ [Fact]
+ public void VerifyEventAttributes_None()
+ {
+ var @event = new EventDefinition("MyEvent"u8, EventAttributes.None, eventType: null);
+ Assert.Equal(EventAttributes.None, @event.Attributes);
+ Assert.False(@event.IsSpecialName);
+ Assert.False(@event.IsRuntimeSpecialName);
+ }
+
+ [Fact]
+ public void VerifyEventAttributes_SpecialName()
+ {
+ var @event = new EventDefinition("MyEvent"u8, EventAttributes.SpecialName, eventType: null);
+ Assert.Equal(EventAttributes.SpecialName, @event.Attributes);
+ Assert.True(@event.IsSpecialName);
+ Assert.False(@event.IsRuntimeSpecialName);
+ }
+
+ [Fact]
+ public void VerifyEventAttributes_RuntimeSpecialName()
+ {
+ var @event = new EventDefinition("MyEvent"u8, EventAttributes.RtSpecialName, eventType: null);
+ Assert.Equal(EventAttributes.RtSpecialName, @event.Attributes);
+ Assert.False(@event.IsSpecialName);
+ Assert.True(@event.IsRuntimeSpecialName);
+ }
+
[Theory]
[InlineData(nameof(MultipleEvents.Event1), "System.EventHandler")]
[InlineData(nameof(MultipleEvents.Event2), "System.AssemblyLoadEventHandler")]