Изменения проекта и перегенерация кода
Скобки программиста представляют собой структуру вида
// *** Start programmer edit section *** ({0})
// *** End programmer edit section *** ({0})
где {0} указывает на позицию скобки в коде.
Если код добавлен между скобками программиста, то он будет сохранён при перегенерации приложения.
Структура кода относительно скобок программиста выглядит следующим образом:
Генерируемый код
Открывающая скобка программиста
Добавленный в проект код // Не потеряется при перегенерации.
Закрывающая скобка программиста
Генерируемый код
Добавленный в проект код // !! Потеряется при перегенерации, т.к. находится вне скобок программиста.
Открывающая скобка программиста
Добавленный в проект код // Не потеряется при перегенерации.
Закрывающая скобка программиста
Генерируемый код
// ...
Настройка скобок программиста
При генерации кода добавляются следующие скобки программиста:
- Заданные по умолчанию для конкретной генерируемой сущности.
- Заданные настройками, определёнными на интерфейсе (например, свойствами
PBCustomAttributes
иPBMembers
классов данных).
Добавление пользовательских скобок программиста не поддерживается.
Возникающие ошибки
Если при генерации через Flexberry Designer в лог выводится информация следующего типа:
-
Ошибка: Не найдено завершение скобки в файле "D:\Проекты\КредитыTestBuild\Кредиты\Objects\Клиент.cs"
, значит, где-то в указанном файле была удалена или добавлена лишняя скобка. - исключение типа
DuplicateBraceFoundedException
значит,что где-то добавлена лишняя открывающая скобка. - исключение типа
NotFoundEndOfBraceException
значит, что где-то удалена закрывающая скобка.
Пример
В классе ниже встречается 12 скобок программиста, позволяющих внести изменения в любую часть кода. У каждой скобки свое предназначение и свое место. К примеру, скобки
// *** Start programmer edit section *** (Клиент CustomMembers)
// *** End programmer edit section *** (Клиент CustomMembers)
отвечают за добавление собственных членов класса. К примеру, если необходимо добавить метод, возвращающий строку вида “ФИО (Прописка)”, то добавлять этот метод нужно будет именно в скобки.
Например, что метод выглядит следующим образом:
public string GetFullClientString()
{
return string.Format("{0} ({1})", ФИО, Прописка);
}
Тогда, после добавления его в правильное место, код класса (отрывок) будет выглядеть так:
private string fФИО;
private string fПрописка;
// *** Start programmer edit section *** (Клиент CustomMembers)
public string GetFullClientString()
{
return string.Format("{0} ({1})", ФИО, Прописка);
}
// *** End programmer edit section *** (Клиент CustomMembers)
Код сгенерированного класса:
namespace IIS.Product_20008
{
using System;
using System.Xml;
using ICSSoft.STORMNET;
/// <summary>
/// Клиент
/// </summary>
// *** Start programmer edit section *** (Клиент CustomAttributes)
// *** End programmer edit section *** (Клиент CustomAttributes)
public class Клиент : ICSSoft.STORMNET.DataObject
{
private string fФИО;
private string fПрописка;
// *** Start programmer edit section *** (Клиент CustomMembers)
// *** End programmer edit section *** (Клиент CustomMembers)
/// <summary>
/// Клиент
/// </summary>
// *** Start programmer edit section *** (Клиент.ФИО CustomAttributes)
// *** End programmer edit section *** (Клиент.ФИО CustomAttributes)
[StrLen(255))
public virtual string ФИО
{
get
{
// *** Start programmer edit section *** (Клиент.ФИО Get start)
// *** End programmer edit section *** (Клиент.ФИО Get start)
string result = this.fФИО;
// *** Start programmer edit section *** (Клиент.ФИО Get end)
// *** End programmer edit section *** (Клиент.ФИО Get end)
return result;
}
set
{
// *** Start programmer edit section *** (Клиент.ФИО Set start)
// *** End programmer edit section *** (Клиент.ФИО Set start)
this.fФИО = value;
// *** Start programmer edit section *** (Клиент.ФИО Set end)
// *** End programmer edit section *** (Клиент.ФИО Set end)
}
}
/// <summary>
/// Клиент
/// </summary>
// *** Start programmer edit section *** (Клиент.Прописка CustomAttributes)
// *** End programmer edit section *** (Клиент.Прописка CustomAttributes)
[StrLen(255))
public virtual string Прописка
{
get
{
// *** Start programmer edit section *** (Клиент.Прописка Get start)
// *** End programmer edit section *** (Клиент.Прописка Get start)
string result = this.fПрописка;
// *** Start programmer edit section *** (Клиент.Прописка Get end)
// *** End programmer edit section *** (Клиент.Прописка Get end)
return result;
}
set
{
// *** Start programmer edit section *** (Клиент.Прописка Set start)
// *** End programmer edit section *** (Клиент.Прописка Set start)
this.fПрописка = value;
// *** Start programmer edit section *** (Клиент.Прописка Set end)
// *** End programmer edit section *** (Клиент.Прописка Set end)
}
}
}
}