2
是否有一種方法可以爲所有繼承自特定基類型的類型設置自定義序列化器?爲所有繼承自基類型的類設置自定義的MongoDB BsonSerializer
考慮以下幾種類型:
class Identity<T> {
T Value { get; set; }
}
class StringIdentity : Identity<string> {
}
class PersonIdentity : StringIdentity {
}
以下模型:
class Person {
public PersonId Identity { get; set; }
}
與以下串行:
class StringIdentitySerializer : IBsonSerializer<StringIdentity>
{
object IBsonSerializer.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
{
return Deserialize(context, args);
}
public void Serialize(BsonSerializationContext context, BsonSerializationArgs args, StringIdentity value)
{
context.Writer.WriteString(value.Value);
}
public StringIdentity Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
{
return new StringIdentity(context.Reader.ReadString());
}
public void Serialize(BsonSerializationContext context, BsonSerializationArgs args, object value)
{
Serialize(context, args, value as StringIdentity);
}
public Type ValueType => typeof(StringIdentity);
}
我想通BsonSerializer.RegisterSerializer(typeof(StringIdentity), new StringIdentitySerializer());
將序列我的財產Id
上Person
作爲一個串。
當我將Id
屬性更改爲StringIdentity
類型時,此串化器工作。
我明白爲什麼發生這種情況(PersonIdentity
是不一樣的類型StringIdentity
),但(沒有裝修Person
類),我將如何得到我的Person
類PersonIdentity
類型的屬性Id
使用該序列化序列化?
[jira.mongodb.org](https://jira.mongodb.org/secure/Dashboard.jspa) - 請問那裏 – profesor79
不,我們不希望在Jira這樣的問題。不過,我會在這裏回答。 –