ile saklanması Onların anlamında polimorfik değerler içeren bir anahtarımız olduğunu varsayalım. Bir sonraki örnek proje düşünün:Sözcüğün polimorfik değerlerle mongoDB kullanılarak C#
public class ToBeSerialized
{
[BsonId]
public ObjectId MongoId;
public IDictionary<string, BaseType> Dictionary;
}
public abstract class BaseType
{
}
public class Type1 : BaseType
{
public string Value1;
}
public class Type2:BaseType
{
public string Value1;
public string Value2;
}
internal class Program
{
public static void Main()
{
var objectToSave = new ToBeSerialized
{
MongoId = ObjectId.GenerateNewId(),
Dictionary = new Dictionary<string, BaseType>
{
{"OdEd1", new Type1 {Value1="value1"}},
{
"OdEd2",
new Type1 {Value1="value1"}
}
}
};
string connectionString = "mongodb://localhost/Serialization";
var mgsb = new MongoUrlBuilder(connectionString);
var MongoServer = MongoDB.Driver.MongoServer.Create(mgsb.ToMongoUrl());
var MongoDatabase = MongoServer.GetDatabase(mgsb.DatabaseName);
MongoCollection<ToBeSerialized> mongoCollection = MongoDatabase.GetCollection<ToBeSerialized>("Dictionary");
mongoCollection.Save(objectToSave);
ToBeSerialized received = mongoCollection.FindOne();
}
}
Bazen bu serisini çalıştığınızda, ben "Bilinmeyen ayırt edici değeri 'beton türünün adını'" gibi seri kaldırma hataları olsun. Neyi yanlış yapıyorum? Her değer bir _t saklarsa neden doğru şekilde eşleyemez?
Çocuklar, teşekkürler. Şimdi benim cevabım –
kabul etmek için bir ikilem var Peki, Andrew'un cevabı daha eksiksiz. “BsonClassMap.RegisterClassMap” çağrısının sözdizimini unuttuğumu itiraf etmeliyim, ve baktığımda, Andrew cevabını yazmıştı. Genel olarak daha eksiksiz bir cevabı tercih ederim, çünkü diğer kullanıcılar büyük olasılıkla kabul edilen cevaba bir göz atacaktır. – mnemosyn