- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我尝试序列化从 TableEntity
派生的实体时收到此错误消息:
Type 'MyClass' cannot inherit from a type that is not marked with DataContractAttribute or SerializableAttribute. Consider marking the base type 'Microsoft.WindowsAzure.Storage.Table.TableEntity' with DataContractAttribute or SerializableAttribute, or removing them from the derived type.
错误消息非常清楚地说明出了什么问题。
所以我的问题是,如何解决 DataContractAttribute
未在 TableEntity
类中被装饰的问题?
代码:
[DataContract]
public class MyClass : MyOwnTableEntity
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Email { get; set; }
}
我需要将 MyClass
序列化为 byte[]
并将其保存到表存储中。
public class MyClassAsByteArray : MyOwnTableEntity
{
public byte[] SomeByteArray { get; set; }
}
如果有人对如何将其序列化为 byte[]
有建议,请告诉我。
[编辑]
我决定创建自己的可序列化TableEntity
:
[DataContract]
public class MyOwnTableEntity : ITableEntity
{
private TableEntity te = new TableEntity();
public MyOwnTableEntity ()
{
}
public MyOwnTableEntity (string partitionKey, string rowKey)
{
this.PartitionKey = partitionKey;
this.RowKey = rowKey;
}
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public DateTimeOffset Timestamp { get; set; }
public string ETag { get; set; }
public virtual void ReadEntity(IDictionary<string, EntityProperty> properties, OperationContext operationContext)
{
te.ReadEntity(properties, operationContext);
}
public virtual IDictionary<string, EntityProperty> WriteEntity(OperationContext operationContext)
{
return te.WriteEntity(operationContext);
}
}
然后我派生自这个类,但是它无法将 MyClass
和 MyClassAsByteArray
的属性写入存储表。那是因为我创建了一个 TableEntity
的新对象。
如何将 MyOwnTableEntity
中传递给 ReadEntity
和 WriteEntity
的参数转发给 ReadEntity
和 实际
方法?TableEntity
类中的 WriteEntity
Microsoft 已经编写了代码,所以我不想在这里重新发明轮子。
编辑参见 TableEntity.cs
最佳答案
回到 MSSQL 并放弃 Azure 表存储作为解决方案。只是因为它有太多的限制。
关于c# - 类型 'MyClass' 无法从未标记为 DataContractAttribute 或 SerializableAttribute 的类型继承。考虑标记基本类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18446246/
当构造函数有参数但每个参数都有默认值时,是否存在对象序列化不起作用的技术原因? 例如,假设这是我要序列化的(伪)类: [SerializableAttribute] public class Para
我正在尝试在 C# 类库项目(最新的 .NET 版本)中使用 [Serializable] 属性,但它无法识别。 据我所知,Serializable it something that belongs
我正在查看其他人的 C# 代码,在公共(public)枚举之前有以下几行: [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30
我试图在一个针对 dnx451 和 dnxcore50 的简单类库中使用 [Serializable] 属性标记自定义异常类,但不幸的是我无法找出 SerializableAttribute 存在于哪
我正在玩序列化(特别是 XmlSerializer)并且有点困惑。 我打算序列化的类具有属性: [System.SerializableAttribute()] 这很好,但是当我从类派生时,我仍然可以
我有一个类,其中一个属性是枚举。像这样: //Do i need [Serializable] public enum SexEnum { Male,
我发现当涉及的数据类型没有 [DataContract] 时,我的 WCF 服务可以正常工作。 ,但 [Serializable]反而。 但是所有的 WCF 教程都显示了第一个而不是后者。为什么? 最
我从各种异常派生了几个类。现在 VS 在这个问题的标题中给出警告。 有人可以解释压制这条规则的含义吗? 你能解释一下来自 here 的规则吗?说“不要禁止针对异常类发出此规则的警告,因为它们必须可序列
为什么 SerializableAttribute 不包含在 Silverlight 版本的 FCL 中? 而且,BinaryFormatter 也不在那里。 我不是在寻找替代解决方案,我只是对这个事
我正在尝试学习使用 C# 序列化将对象保存到可以重新加载回对象的文件中。 我测试过的像这样的普通类 [Serializable()] public class PlainClass { pub
当我尝试序列化从 TableEntity 派生的实体时收到此错误消息: Type 'MyClass' cannot inherit from a type that is not marked wit
我是一名优秀的程序员,十分优秀!