Ошибка сериализации хранилища таблиц Windows Azure в Bot Framework v3 - PullRequest
0 голосов
/ 29 октября 2018

Я использую клиентскую библиотеку Windows.Azure.Storage .NET (v 9.3.2) для работы с таблицами хранилища Azure. Я использую это в Bot Framework v3. Bot Framework требует, чтобы все классы сущностей были [Serializable].

Мои классы домена наследуются от TableEntity и выглядят следующим образом:

 [Serializable]
    public class FAQContent : TableEntity
    {
    public string Message
    {
        get;set;
    }
    public string Type
    { get; set; }

    public string Mime
    { get; set; }

При запросе таблицы Azure я получаю следующие исключения:

System.Runtime.Serialization.SerializationException: Тип «Microsoft.WindowsAzure.Storage.Table.TableEntity» в сборке 'Microsoft.WindowsAzure.Storage, версия = 9.3.2.0, культура = нейтральная,
PublicKeyToken = 31bf3856ad364e35 'не помечен как сериализуемый.
в System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers (RuntimeType тип) в System.Runtime.Serialization.FormatterServices. <> C__DisplayClass9_0.b__0 (MemberHolder _) в System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd (TKey ключ, Func2 valueFactory) в System.Runtime.Serialization.FormatterServices.GetSerializableMembers (Тип тип, контекст StreamingContext) в System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo () в System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize (Тип objectType, ISurrogateSelector surrogateSelector, StreamingContext контекст, SerObjectInfoInit serObjectInfoInit, IFormatterConverter преобразователь, SerializationBinder Binder) в System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteArray (WriteObjectInfo objectInfo, NameInfo memberNameInfo, WriteObjectInfo memberObjectInfo) в System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write (WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) в System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize (Объект graph, Header [] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
в System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (Stream serializationStream, граф объектов, заголовки Header [], логический fCheck)
в System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (Stream serializationStream, Граф объекта) в Microsoft.Bot.Builder.Internals.Fibers.FormatterStore1.Microsoft.Bot.Builder.Internals.Fibers.IStore.Save (Т пункт) в Microsoft.Bot.Builder.Internals.Fibers.ErrorResilientStore1.Microsoft.Bot.Builder.Internals.Fibers.IStore.Save (Т пункт) в Microsoft.Bot.Builder.Internals.Fibers.FactoryStore1.Microsoft.Bot.Builder.Internals.Fibers.IStore.Save (Т пункт) в Microsoft.Bot.Builder.Dialogs.Internals.DialogTask.d__23.MoveNext () --- Трассировка конца стека от предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.Bot.Builder.Dialogs.Internals.ReactiveDialogTask.d__3.MoveNext () --- Трассировка конца стека от предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в Microsoft.Bot.Builder.Dialogs.Internals.ScoringEventLoop`1.d__5.MoveNext () --- Трассировка конца стека от предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.Bot.Builder.Dialogs.Internals.EventLoopDialogTask.d__3.MoveNext () --- Конец трассировки стека от предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) вMicrosoft.Bot.Builder.Dialogs.Internals.SetAmbientThreadCulture.d__3.MoveNext () --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.Bot.Builder.Dialogs.Internals.QueueDrainingDialogTask.d__4.MoveNext () --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.Bot.Builder.Dialogs.Internals.PersistentDialogTask.d__3.MoveNext () --- Конец трассировки стека от предыдущего местоположения, где было сгенерировано исключение --- at Microsoft.Bot.Builder.Dialogs.Internals.PersistentDialogTask.d__3.MoveNext () --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.Bot.Builder.Dialogs.Internals.ExceptionTranslationDialogTask.d__2.MoveNext () --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.Bot.Builder.Dialogs.Internals.SerializeByConversation.d__4.MoveNext () --- Конец трассировки стека от предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.Bot.Builder.Dialogs.Internals.PostUnhandledExceptionToUser.d__5.MoveNext () --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- в Microsoft.Bot.Builder.Dialogs.Internals.PostUnhandledExceptionToUser.d__5.MoveNext () --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.Bot.Builder.Dialogs.Internals.LogPostToBot.d__3.MoveNext () --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.Bot.Builder.Dialogs.Conversation.d__11.MoveNext () --- Трассировка конца стека от предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.Bot.Builder.Dialogs.Conversation.d__6.MoveNext () --- Трассировка конца стека от предыдущего местоположения, где было сгенерировано исключение --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Service_Bot.MessagesController.d__1.MoveNext ()

Может кто-нибудь подсказать, что может пойти не так?

Приветствие Абхишек

...