in src/Microsoft.Azure.NotificationHubs/NotificationHubClient.cs [3463:3501]
private async Task<TEntity> ReadEntityAsync<TEntity>(Stream source) where TEntity : EntityDescription
{
using (var xmlReader = XmlReader.Create(source, new XmlReaderSettings { Async = true }))
{
await xmlReader.MoveToContentAsync().ConfigureAwait(false);
if (xmlReader.Name != "entry")
{
throw new FormatException("Required 'entry' element is missing");
}
xmlReader.ReadToDescendant("content");
xmlReader.ReadStartElement();
var entity = _entitySerializer.Deserialize(xmlReader, xmlReader.Name);
#pragma warning disable CS0618
if (typeof(GcmRegistrationDescription).IsAssignableFrom(typeof(TEntity)))
{
return (TEntity)entity;
}
if (entity is GcmTemplateRegistrationDescription gcmTemplateRegistrationDescription)
{
var fcmTemplateRegistrationDescription = new FcmTemplateRegistrationDescription(gcmTemplateRegistrationDescription);
return (fcmTemplateRegistrationDescription as TEntity);
}
if (entity is GcmRegistrationDescription gcmRegistrationDescription)
{
var fcmRegistrationDescription = new FcmRegistrationDescription(gcmRegistrationDescription);
return (fcmRegistrationDescription as TEntity);
}
#pragma warning restore CS0618
return (TEntity)entity;
}
}