Возможно, вы захотите учесть, что эти классы могут не подходить для использования в прокси-классах.
Это также верно для классов Entity Framework или LINQ to SQL - они сериализуют данные из базовых классов, делая их зависящими от платформы.
Возможно, вам следует создать объекты передачи данных, соответствующие типам вашего замка, а затем скопировать данные в них или из них и передать экземпляры DTO туда и обратно.