Здравствуйте, LevaR, Вы писали:
LR>Добрый день всем.
LR>Я, наверное, со своим вопросом покажусь му**ком, но все-таки. LR>У меня есть проект (WPF), в котором определены базовые классы объектов. Классы эти используются только моим приложением и все хорошо работает. LR>Но теперь появилась необходимость использовать их и в других приложениях (проектах). Решили, что лучше их вынести в отдельный проект и использовать от туда. Но проблема в том, что они классы используют данные приложения, например ConnectionString или параметры текущего пользователя. Так вот вопрос как бы так сделать, чтобы в эти классы была возможность передавать параметры из того приложения (проекта), который их использует. LR>Решение сделать базовый класс с статическими методами для получения этих параметров, как-то не очень нравится, так как для каждого класса придется переопределять этот метод.
Common часть должна определять интерфейсы для получения всего что ей надо но она не знает где взять. А конкретные приложения пусть реализуют их. Настройка этого через конфиг или можно в коде.
Здравствуйте, LevaR, Вы писали:
LR>Добрый день всем.
LR>Я, наверное, со своим вопросом покажусь му**ком, но все-таки. LR>У меня есть проект (WPF), в котором определены базовые классы объектов. Классы эти используются только моим приложением и все хорошо работает. LR>Но теперь появилась необходимость использовать их и в других приложениях (проектах). Решили, что лучше их вынести в отдельный проект и использовать от туда. Но проблема в том, что они классы используют данные приложения, например ConnectionString или параметры текущего пользователя. Так вот вопрос как бы так сделать, чтобы в эти классы была возможность передавать параметры из того приложения (проекта), который их использует. LR>Решение сделать базовый класс с статическими методами для получения этих параметров, как-то не очень нравится, так как для каждого класса придется переопределять этот метод.
LR>Если вам вопрос кажется слишком лоховским, то не отвечайте, я постараюсь сам разобраться.
ну, что касается connection string, то она и так будет браться из нужного проекта. Конечно при условии, что она определена в app.config-е. То есть два разных WPF клиента могут пользоваться одной и той же библиотекой, но у каждого будет свой конфигурационный файл, следовательно и своя строка.
Про параметры пользователя не очень понятно, о чём именно идёт речь. Если это скажем виндовые пользователи, то иожно использовать Thread.CurrentPrincipal.
Ну а если нужно какое-то общее решение, я бы сделал передачу всех настроек через конструктор нуждающихся в них классов.
Здравствуйте, User239, Вы писали:
U>Здравствуйте, LevaR, Вы писали:
LR>>Добрый день всем.
LR>>Так вот вопрос как бы так сделать, чтобы в эти классы была возможность передавать параметры из того приложения (проекта), который их использует. LR>>Решение сделать базовый класс с статическими методами для получения этих параметров, как-то не очень нравится, так как для каждого класса придется переопределять этот метод.
вохможно серилиховать объект приложения с нужными параметрами и передать в качестве аргумента в общеиспользоваемый класс, десериализируя уже в нем переданное каким угодно способом
Я, наверное, со своим вопросом покажусь му**ком, но все-таки.
У меня есть проект (WPF), в котором определены базовые классы объектов. Классы эти используются только моим приложением и все хорошо работает.
Но теперь появилась необходимость использовать их и в других приложениях (проектах). Решили, что лучше их вынести в отдельный проект и использовать от туда. Но проблема в том, что они классы используют данные приложения, например ConnectionString или параметры текущего пользователя. Так вот вопрос как бы так сделать, чтобы в эти классы была возможность передавать параметры из того приложения (проекта), который их использует.
Решение сделать базовый класс с статическими методами для получения этих параметров, как-то не очень нравится, так как для каждого класса придется переопределять этот метод.
Если вам вопрос кажется слишком лоховским, то не отвечайте, я постараюсь сам разобраться.
Здравствуйте, User239, Вы писали:
U>Здравствуйте, LevaR, Вы писали:
LR>>Добрый день всем.
LR>>Я, наверное, со своим вопросом покажусь му**ком, но все-таки. LR>>У меня есть проект (WPF), в котором определены базовые классы объектов. Классы эти используются только моим приложением и все хорошо работает. LR>>Но теперь появилась необходимость использовать их и в других приложениях (проектах). Решили, что лучше их вынести в отдельный проект и использовать от туда. Но проблема в том, что они классы используют данные приложения, например ConnectionString или параметры текущего пользователя. Так вот вопрос как бы так сделать, чтобы в эти классы была возможность передавать параметры из того приложения (проекта), который их использует. LR>>Решение сделать базовый класс с статическими методами для получения этих параметров, как-то не очень нравится, так как для каждого класса придется переопределять этот метод.
LR>>Если вам вопрос кажется слишком лоховским, то не отвечайте, я постараюсь сам разобраться.
U>ну, что касается connection string, то она и так будет браться из нужного проекта. Конечно при условии, что она определена в app.config-е. То есть два разных WPF клиента могут пользоваться одной и той же библиотекой, но у каждого будет свой конфигурационный файл, следовательно и своя строка.
U>Про параметры пользователя не очень понятно, о чём именно идёт речь. Если это скажем виндовые пользователи, то иожно использовать Thread.CurrentPrincipal.
U>Ну а если нужно какое-то общее решение, я бы сделал передачу всех настроек через конструктор нуждающихся в них классов.
ConnectString я привел только для примера и с ним то более менее все понятно. Проблема, например с текущим пользователем. Есть класс CurrentUser, который хранит параметры текущего пользователя, его ID, список подчиненных, Имя и проч. Он статически создается в приложении, а потом используется практически во всех классах.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, User239, Вы писали:
U>>Здравствуйте, LevaR, Вы писали:
LR>>>Добрый день всем.
LR>>>Так вот вопрос как бы так сделать, чтобы в эти классы была возможность передавать параметры из того приложения (проекта), который их использует. LR>>>Решение сделать базовый класс с статическими методами для получения этих параметров, как-то не очень нравится, так как для каждого класса придется переопределять этот метод.
А>вохможно серилиховать объект приложения с нужными параметрами и передать в качестве аргумента в общеиспользоваемый класс, десериализируя уже в нем переданное каким угодно способом
Ээээ... а как точно, я не совсем понимаю, как это можно сделать