我需要通过编写一个新的映射器类来为NHibernate创建一个自定义类型。虽然覆盖大多数方法和属性相对简单,但我很难理解如何正确处理以下成员:IUserType
object Assemble(object cached, object owner);
object DeepCopy(object value);
object Disassemble(object value);
object Replace(object original, object target, object owner);
我不明白他们的目的到底是什么;更重要的是,如何正确实施它们。我见过的大多数示例只返回原始输入参数。
public object DeepCopy(object value)
{
return value;
}
public object Replace(object original, object target, object owner)
{
return original;
}
public object Assemble(object cached, object owner)
{
return cached;
}
public object Disassemble(object value)
{
return value;
}
如何在真实案例或更复杂的场景中正确实现这些方法?