簡體   English   中英

AWS DynamoDB對象持久性模型:我的類不受支持,無法實例化

[英]AWS DynamoDB Object Persistence Model: My class is unsupported, it cannot be instantiated

我設計了一個像這樣的簡單類:

[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對象上下文對DynamoDB表進行持久化以使用以下方式轉換為DynamoDB對象持久性模型時:

context.ToDocument(data)

它在下面拋出異常e

e.Message :類型myProject.myNameSpace.MySimpleClass不支持,無法實例化

e.StackTrace :位於Amazon.DynamoDBv2.DataModel.ItemStorageConfigCache.CreateStorageConfig(Type baseType,String ActualTableName類型)在Amazon.DynamoDBv2.DataModel.StorageConfig..ctor(ITypeInfo targetTypeInfo)在Amazon.DynamoDBv2.DataModel.ItemStorageConfig。 )(Amazon.DynamoDBv2.DataModel.DynamoDBContext.ObjectToItemStorage(Object toStore,Type objectType,Type objectType,Boolean keysOnly,DynamoDBFlatConfig flatConfig)at Amazon.DynamoDB2)。 .DynamoDBContext.ObjectToItemStorage [T](在Amazon.DynamoDBv2.DataModel.DynamoDBContext.ToDocument [T](T值,DynamoDBOperationConfig operationConfig)在Amazon.DynamoDBv2.DataModel.DynamoDBContext.ToDocument [T toStore,Boolean keysOnly,DynamoDBFlatConfig flatConfig) C:\\ MyProject \\ myProject4PersistanceOnDynamo \\ DynamoT中的myProject4PersistanceOnDynamo.DynamoTableWrapper.Persist [T](T數據)處的(T值) ableWrapper.cs:第101行(表示context.ToDocument(data)

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

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

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;
    }
}

我檢查了此另一頁上的文檔,看來我沒有使用禁止對象。 知道發生了什么問題嗎?

公共MySimpleClass(AnotherClass anotherClassMessage){

您需要一個沒有任何依賴關系的構造函數。

定義這樣的多態構造函數,

public MySimpleClass() {}

那應該解決問題。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM