gpt4 book ai didi

c# - AWS DynamoDB 对象持久化模型 : My class is unsupported, 无法实例化

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:40 26 4
gpt4 key购买 nike

我设计了一个这样的简单类:

[DynamoDBTable("MyTableName")]
public class MySimpleClass{

[DynamoDBHashKey]
public string Id { get; set; }

[DynamoDBProperty]
public DateTime TimeStamp { get; set; }

[DynamoDBProperty]
public string Message { get; set; }

public MySimpleClass(AnotherClass anotherClassMessage){
this.Id = anotherClassMessage.Id;
this.TimeStamp = anotherClassMessage.TimeStamp;
this.Message = anotherClassMessage.Message;
}
}

当我尝试使用 DynamoDBContext 对象context 持久化我的 DynamoDB 表以转换为 DynamoDB 对象持久化模型时,使用:

context.ToDocument(data)

它抛出下面的异常e:

e.Message:不支持类型myProject.myNameSpace.MySimpleClass,无法实例化

e.StackTrace:在 Amazon.DynamoDBv2.DataModel.StorageConfig..ctor(ITypeInfo targetTypeInfo)在 Amazon.DynamoDBv2.DataModel.ItemStorageConfig..ctor(ITypeInfo targetTypeInfo)在 Amazon.DynamoDBv2.DataModel.ItemStorageConfigCache.CreateStorageConfig(类型 baseType,字符串 actualTableName)在 Amazon.DynamoDBv2.DataModel.ItemStorageConfigCache.GetConfig(类型类型,DynamoDBFlatConfig flatConfig,仅限 bool 值转换)在 Amazon.DynamoDBv2.DataModel.DynamoDBContext.ObjectToItemStorage(对象 toStore,类型 objectType, bool keysOnly,DynamoDBFlatConfig flatConfig)在 Amazon.DynamoDBv2.DataModel.DynamoDBContext.ObjectToItemStorage[T](T toStore, Boolean keysOnly, DynamoDBFlatConfig flatConfig)在 Amazon.DynamoDBv2.DataModel.DynamoDBContext.ToDocument[T](T 值,DynamoDBOperationConfig 操作配置)在 Amazon.DynamoDBv2.DataModel.DynamoDBContext.ToDocument[T](T 值)在 C:\MyProject\myProject4PersistanceOnDynamo\DynamoTableWrapper.cs 中的 myProject4PersistanceOnDynamo.DynamoTableWrapper.Persist[T](T 数据):第 101 行(这意味着 context.ToDocument(data))

e.Source:AWSSDK.DynamoDBv2(版本:3.3.0.0 | 运行版本:v4.0.30319)

我的 myProject4PersistanceOnDynamo.DynamoTableWrapper.Persist[T](T 数据)是:

public void Persist<T>(T data)
{
// Client is a AmazonDynamoDBClient object with correct credentials
private DynamoDBContext context = new DynamoDBContext(Client)

try
{
var doc = context.ToDocument(data);
Table.PutItem(doc);
}
catch (Exception e)
{
throw e;
}
}

我查看了有关此 page 的文档还有这个other page而且我似乎没有使用禁止对象。知道出了什么问题吗?

最佳答案

public MySimpleClass(AnotherClass anotherClassMessage){

你需要一个没有任何依赖的构造函数。

像这样定义一个多态构造函数,

public MySimpleClass() {}

应该可以解决问题。

希望对您有所帮助。

关于c# - AWS DynamoDB 对象持久化模型 : My class is unsupported, 无法实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46459725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com