У меня есть неуправляемое приложение C ++ (неуправляемое значение: не использовать ничего из причудливых вещей .Net).Я хочу дополнить его некоторой метаинформацией, и похоже, что я мог бы использовать концепцию атрибутов.
То, чего я на самом деле пытаюсь достичь, это следующее.Начиная с чего-то простого класса, подобного этому:
class Book
{
public:
...
private:
string m_name;
string m_author;
int m_year;
};
Я хочу создать функциональность, которая может получить доступ к «метаинформации» класса и использовать ее для динамического построения логики, например,
* 1007.* диалоговое окно, содержащее 3 поля редактирования (имя, автор, год) сетка данных с 3 столбцами логика сериализации логика, которая отображает этот класс втаблица базы данных с 3 столбцами ...
Я вижу свои самые смелые мечты. Я представляю себе, как я изменяю этот класс следующим образом:
[id="Book"]
class Book
{
public:
...
private:
[id="Name", defaultValue="", maximumLength=100]
string m_name;
[id="Author", defaultValue="", maximumLength=100]
string m_author;
[id="Year", defaultValue=2000, minimum=1900]
int m_year;
};
И затем могуэта «мета» информация для построения диалогов, заполнения таблиц данных, сериализации и десериализации экземпляров, ...
Но ограничена ли концепция атрибутов .Net / управляемым кодом?
Иесли бы я мог использовать атрибуты в неуправляемом коде, было бы возможно сделать что-то подобное?И с чего начать?(примеры, ...)
Кроме того, можно ли найти те же (или похожие) концепции в других компиляторах, на других платформах?
Я использую Visual Studio 2010 и, как было сказано ранее, неуправляемый / нативный C ++.