I designed a simple class like that:
[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;
}
}
When I try to persist on my DynamoDB Table using a DynamoDBContext object context to convert for a DynamoDB Object Persistence Model using:
context.ToDocument(data)
it throws the exception e below:
e.Message: Type myProject.myNameSpace.MySimpleClass is unsupported, it cannot be instantiated
e.StackTrace: at Amazon.DynamoDBv2.DataModel.StorageConfig..ctor(ITypeInfo targetTypeInfo) at Amazon.DynamoDBv2.DataModel.ItemStorageConfig..ctor(ITypeInfo targetTypeInfo) at Amazon.DynamoDBv2.DataModel.ItemStorageConfigCache.CreateStorageConfig(Type baseType, String actualTableName) at Amazon.DynamoDBv2.DataModel.ItemStorageConfigCache.GetConfig(Type type, DynamoDBFlatConfig flatConfig, Boolean conversionOnly) at Amazon.DynamoDBv2.DataModel.DynamoDBContext.ObjectToItemStorage(Object toStore, Type objectType, Boolean keysOnly, DynamoDBFlatConfig flatConfig) at Amazon.DynamoDBv2.DataModel.DynamoDBContext.ObjectToItemStorage[T](T toStore, Boolean keysOnly, DynamoDBFlatConfig flatConfig) at Amazon.DynamoDBv2.DataModel.DynamoDBContext.ToDocument[T](T value, DynamoDBOperationConfig operationConfig) at Amazon.DynamoDBv2.DataModel.DynamoDBContext.ToDocument[T](T value) at myProject4PersistanceOnDynamo.DynamoTableWrapper.Persist[T](T data) in C:\MyProject\myProject4PersistanceOnDynamo\DynamoTableWrapper.cs:line 101 (which means context.ToDocument(data))
e.Source: AWSSDK.DynamoDBv2 (Version: 3.3.0.0 | Running version: v4.0.30319)
My myProject4PersistanceOnDynamo.DynamoTableWrapper.Persist[T](T data) is:
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;
}
}
I checked the documentation on this page and this other page and it doesn't seems I used a forbbiden object. Any idea what wrong is going on?