Dodaj właściwość do klasy POCO w czasie wykonywania
WybrałemServiceStack OrmLite dla mojego projektu, który jest czystą aplikacją zorientowaną na dane. Jestem gotów pozwolić użytkownikowi końcowemu na stworzenie własnych typów obiektów zdefiniowanych w formacie XML, który będzie używany do generowania klas w czasie wykonywania przy użyciuCodeDOM.
Będę również definiować niektóre obiekty „systemowe” wymagane przez aplikację (tj.User
) ale nie mogę przewidzieć wszystkich właściwości, których użyje użytkownik końcowy, dlatego szukam sposobu, aby umożliwić rozszerzenie klas, które tworzę w czasie projektowania. Przykład poniżej
public class User
{
public Guid Uid { get; set; }
public String Username { get; set; }
public String Password { get; set; }
}
Użytkownik końcowy chce miećEmail
i anAddress
. Powinien być w stanie dodać 2 właściwości do wyższej klasy i cała klasa będzie (która nadal może być używana przez OrmLite, ponieważ pozwala na nadpisanie:
public class User
{
public Guid Uid { get; set; }
public String Username { get; set; }
public String Password { get; set; }
public String Email{ get; set; }
public String Address { get; set; }
}
Wiem, że może to spowodować ryzyko awarii systemu (jeśli klasa jest już utworzona), więc szukam najlepszego sposobu na uniknięcie tego problemu i naśladowanie potrzeby.