LINUX.ORG.RU

[Mono] Получение значений атрибутов свойств

 


0

2

Всем привет. Итак, я приступил к реализации ORM для БД сайта с целью протестировать ее работу. Для этого я пишу объектную обертку к таблицам базы. Примерно вот такую:

 [Table(Name = "Users")]
    public class Users
    {
        [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
        public int ClientId { get; set; }
        [Column(Name = "nick")]
        public string NickName { get; set; }
        [Column(Name = "passwd", CanBeNull = false)]
        public string Password { get; set; }
        [Column(Name = "email", CanBeNull = false)]
        public string MailTo { get; set; }
        [Column(Name = "photo")]
        public byte[] UserPhoto { get; set; }
    }

А теперь внимание вопрос: как мне при реализации методов работающих с таблицами учесть значения параметров свойств классов-обёрток? Сериализация мне поможет или нет? Хм.. похоже я сам ответил на свой вопрос, тем не менее любые годные идеи приветствуются.

Ответ на: комментарий от no-dashi

О, спасибо.

А Xml-сериализация разве не даст нужного эффекта?

Можно пример кода с Reflection применительно к моему случаю, если не затруднит?

LongLiveUbuntu ★★★★★
() автор топика

Как же здесь дотнет не любят...

LongLiveUbuntu ★★★★★
() автор топика

Привет, Короче, не слушай их - используй Mono.Cecil ModuleDefinition -> и далее листаешь типы на предмет своих атрибутов. Читаешь их, их значения (см. тесты к исходникам Mono.Cecil на гитхабе как прочесть значение атрибута - все просто, если сразу туда посмотреть :)) И имеешь счастье.

Быстро. (типы не грузятся в AppDomain приложения, в отличие от)

malbolge ★★
()
Ответ на: комментарий от malbolge

И, да, счастье быстро кончается если сборку подсовываешь обфаченную... обсфукаченную или заинструменченную (ну я думаю до VS Performance Tools ты еще долго не доберешься - уж больно специфично, так что оба варианта отлучения от счастья маловероятны :) )

malbolge ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.