При возврате списка таблиц с использованием WebAPI я получаю 500 Internal Server Error. Когда я смотрю вывод в Visual Studio, я вижу, что получаю это «System.Runtime.Serialization.SerializationException».SerializationException при возврате списка объектов Azure TableEntity
Вот мой код в контроллере
public IEnumerable<ContactEntity> Get()
{
var creds = new StorageCredentials("MyAccountName", "MyKey");
var storageAccount = new CloudStorageAccount(creds, false);
// Create the table client.
var tableClient = storageAccount.CreateCloudTableClient();
// Retrieve a reference to the table.
var contactsTable = tableClient.GetTableReference("contacts");
// Create the table if it doesn't exist.
contactsTable.CreateIfNotExists();
// Construct the query operation for all contact entities
var query = new TableQuery<ContactEntity>();
var items = contactsTable.ExecuteQuery<ContactEntity>(query).ToList();
return items;
}
Это мой код для пользовательского TableEntity
[Serializable]
public class ContactEntity: TableEntity
{
public ContactEntity(string firstName, string lastName)
{
this.PartitionKey = lastName;
this.RowKey = firstName;
}
public ContactEntity() { }
public string Email { get; set; }
}
В контроллере, если я вручную создать список лиц, я не получаю проблемы сериализации ,
public IEnumerable<ContactEntity> Get()
{
var creds = new StorageCredentials("MyAccountName", "MyKey");
var storageAccount = new CloudStorageAccount(creds, false);
// Create the table client.
var tableClient = storageAccount.CreateCloudTableClient();
// Retrieve a reference to the table.
var contactsTable = tableClient.GetTableReference("contacts");
// Create the table if it doesn't exist.
contactsTable.CreateIfNotExists();
// Construct the query operation for all contact entities
var query = new TableQuery<ContactEntity>();
var items = contactsTable.ExecuteQuery<ContactEntity>(query).ToList();
var manualList = new List<ContactEntity>() { };
manualList.Add(new ContactEntity { PartitionKey = items[0].PartitionKey, RowKey = items[0].RowKey, ETag = items[0].ETag, Timestamp = items[0].Timestamp });
manualList.Add(new ContactEntity { PartitionKey = items[1].PartitionKey, RowKey = items[1].RowKey, ETag = items[1].ETag, Timestamp = items[1].Timestamp });
return manualList;
}
Любые идеи, почему?
Вот исключения, перечисленные в окне вывода.
Исключение брошено: 'System.Runtime.Serialization.SerializationException' в mscorlib.dll Исключение брошено: 'System.Runtime.Serialization.SerializationException' в mscorlib.dll Исключение брошено: 'System.Runtime.Serialization.SerializationException' в Newtonsoft.Json.dll Исключение брошено: 'System.Runtime.Serialization.SerializationException' в Newtonsoft.Json.dll Исключение брошено: 'System.Runtime.Serialization.SerializationException' в Newtonsoft.Json.dll Исключение брошено: 'Система .Runtime.Serialization.SerializationException 'в Newtonsoft.Json.dll Исключение брошено:' System.Runtime.Serialization.SerializationException 'в Newtonsoft.Json.dll Exc eption thrown: 'System.Runtime.Serialization.SerializationException' в Newtonsoft.Json.dll Исключение брошено: 'System.Runtime.Serialization.SerializationException' в mscorlib.dll Исключение брошено: 'System.Runtime.Serialization.SerializationException' в mscorlib .dll
Вы можете разместить информацию о исключении? Я думаю, что это связано с тем, что сущности привязаны к облачному ... – Thomas
добавлены исключения, перечисленные в окне вывода –