• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Использование алиасов в методах API

Автор FeelsSoBad, 18.02.25, 12:41:07

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

FeelsSoBad

Добрый день, возник следующий вопрос - в Лоцмане у объектов кроме стандартного наименования для типов объектов (атрибутов\связей\состояний) можно задавать алиасы - альтернативные наименования типов на латинице. Как пример, у типа "Альбом" есть алиас "album". Вопрос заключается в следующем - можно ли как-то использовать алиасы в методах API? Дело в том, что наименование типа может измениться, что повлечет за собой переписывание всех участков кода, где это наименование прописано, а алиас выглядит в этом плане более надежным. Допустим:
//В случае, если переименовать тип "Альбом", все подобные строчки нужно будет править
simpleAPI.GetDataset("GetInfoAboutType", new object[] { "Альбом", 1 });
//Нерабочий вариант, приведен для примера
simpleAPI.GetDataset("GetInfoAboutType", new object[] { "album", 1 });
Есть ли в Лоцмане возможность так использовать алиасы? Заранее спасибо за ответ

Chipollino

Если алиасы можно задавать, то что мешает их так же менять?

Чтобы не выискивать в коде названия типов/атрибутов/связей/состояний - выносите их в отдельный словарь в рамках проекта, например так:
// Словарь с псевдонимами для проекта
public static class LoodsmanDictionary{
    public static class Types{
        public const string // Перечисляем типы
            album = "альбом",
            det2d = "Чертеж детали",
            asm2d = "Сборочный чертеж",
            spec = "Спецификация";
    }
    public static class Attributes{
        public const string // Перечисляем атрибуты
            Name = "Наименование",
    }
}

class Program{
    static void Main(string[] args){
        // Пример использования
        simpleAPI.GetDataset("GetInfoAboutType", new object[] { LoodsmanDictionary.Types.album, 1 });;
    }
}
А еще лучше, формируйте этот словарь из внешнего файла (ini/json/xml) - тогда и пересобирать плагин каждый раз не надо будет, просто меняйте файл с настройками.
+ Благодарностей: 1

FeelsSoBad

Цитата: Chipollino от 21.02.25, 08:44:02Если алиасы можно задавать, то что мешает их так же менять?

Чтобы не выискивать в коде названия типов/атрибутов/связей/состояний - выносите их в отдельный словарь в рамках проекта, например так:
// Словарь с псевдонимами для проекта
public static class LoodsmanDictionary{
    public static class Types{
        public const string // Перечисляем типы
            album = "альбом",
            det2d = "Чертеж детали",
            asm2d = "Сборочный чертеж",
            spec = "Спецификация";
    }
    public static class Attributes{
        public const string // Перечисляем атрибуты
            Name = "Наименование",
    }
}

class Program{
    static void Main(string[] args){
        // Пример использования
        simpleAPI.GetDataset("GetInfoAboutType", new object[] { LoodsmanDictionary.Types.album, 1 });;
    }
}
А еще лучше, формируйте этот словарь из внешнего файла (ini/json/xml) - тогда и пересобирать плагин каждый раз не надо будет, просто меняйте файл с настройками.
Спасибо, идея здравая, просто в таком случае непонятно, для чего алиасы вообще существуют? Была мысль, что хотя бы логика использования алиасов у конечного пользователя будет примерно такая - "Название у типа можно поменять, а алиасы без особой надобности не следует"