Jak poprawnie wdrożyć IUserType?

Muszę utworzyćniestandardowy typ dlaNHibernate pisząc nową klasę mapera, która implementujeIUserType. Chociaż stosunkowo łatwo jest zastąpić większość metod i właściwości, mam pewne trudności ze zrozumieniem, jak poprawnie postępować z następującymi członkami:

object Assemble(object cached, object owner);object DeepCopy(object value);object Disassemble(object value);object Replace(object original, object target, object owner);

Nie rozumiem, jaki jest ich cel; i co ważniejsze, jak prawidłowo je wdrożyć. Większość przykładów, które widziałem, po prostu zwraca surowy parametr wejściowy.

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

Jak poprawnie wdrożyć te metody w prawdziwym przypadku lub bardziej złożonym scenariuszu?

questionAnswers(2)

yourAnswerToTheQuestion