public void NonGenericReceiveAndDeserializeEventGridEvents() { #region Snippet:EGEventParseJson // Parse the JSON payload into a list of events using EventGridEvent.Parse EventGridEvent[] egEvents = EventGridEvent.ParseEvents(jsonPayloadSampleOne); #endregion // Iterate over each event to access event properties and data #region Snippet:DeserializePayloadUsingAsSystemEventData foreach (EventGridEvent egEvent in egEvents) { // If the event is a system event, TryGetSystemEventData() will return the deserialized system event if (egEvent.TryGetSystemEventData(out object systemEvent)) { switch (systemEvent) { case SubscriptionValidationEventData subscriptionValidated: Console.WriteLine(subscriptionValidated.ValidationCode); break; case StorageBlobCreatedEventData blobCreated: Console.WriteLine(blobCreated.BlobType); break; // Handle any other system event type default: Console.WriteLine(egEvent.EventType); // we can get the raw Json for the event using Data Console.WriteLine(egEvent.Data.ToString()); break; } } else { switch (egEvent.EventType) { case "MyApp.Models.CustomEventType": TestPayload deserializedEventData = egEvent.Data.ToObjectFromJson <TestPayload>(); Console.WriteLine(deserializedEventData.Name); break; // Handle any other custom event type default: Console.Write(egEvent.EventType); Console.WriteLine(egEvent.Data.ToString()); break; } } } #endregion }