Особенности использования метода GetPropertyStorageName класса Information
Статический метод GetPropertyStorageName класса Information позволяет получить имя хранения .Net-свойства, установленное атрибутом PropertyStorageAttribute.
Метод без использования индекса
Метод, не требующий указания индекса при вызове, имеет следующий вид:
/// <param name="type">.Net-тип класса объекта данных</param>
/// <param name="property">имя свойства</param>
/// <returns>имя хранения</returns>
static public string GetPropertyStorageName(System.Type type, string property)
Данный метод необходимо применять, если атрибут свойства PropertyStorageAttribute имеет вид:
[PropertyStorage("TimeQu"))
Метод с использованием индекса
Метод, требующий указания индекса при вызове, имеет следующий вид:
/// <param name="type">.Net-тип класса объекта данных</param>
/// <param name="property">имя свойства</param>
/// <param name="index">индекс в множестве</param>
/// <returns>имя хранения</returns>
static public string GetPropertyStorageName(System.Type type, string property, int index)
Данный метод необходимо применять, если при объявлении атрибута свойства PropertyStorageAttribute используется массив имён:
PropertyStorage(new string[]) {"ПростоКласс"}))
В этом случае параметр index определит номер элемента из массива имён, определённого при объявлении атрибута свойства PropertyStorageAttribute, который будет возвращён методом.
Ошибочное использование Information.GetPropertyStorageName
- Если атрибут
PropertyStorageAttributeбыл объявлен без использования массива, но используется вызовInformation.GetPropertyStorageNameс индексом, то будет вызвано исключение. - Если атрибут
PropertyStorageAttributeбыл объявлен с использования массива, но используется вызовInformation.GetPropertyStorageNameбез индекса, то будет возвращена пустая строка.
Особенности генерации атрибута свойств PropertyStorage
- Атрибут
Storage, заданный для свойств классов, после генерации будет представлен в виде объявления атрибутаPropertyStorageбез массива. - Атрибуты
Aggregator Storageдетейловой связи иStorageмастеровой связи после генерации будут представлены в виде объявления атрибутаPropertyStorageбез массива, если выполнены следующие условия:- Storage-атрибут содержит только одно непустое значение.
- Атрибут TypeUsage содержит более одного значения.