Использование нескольких файлов конфигурации в сценарии модели провайдера - PullRequest
1 голос
/ 12 июля 2011

Мы используем модель провайдера для платежных шлюзов, и я надеюсь найти способ сделать следующее;

Каждый провайдер должен иметь свой собственный файл конфигурации. Это будет содержать только конфигурацию, применимую к этому провайдеру.

У потребителя будет файл конфигурации, в котором хранятся только необходимые записи, такие как Unity. Потребитель затем загружает провайдеров через Unity.

Мы могли бы потенциально иметь несколько провайдеров и инкапсулировать конфигурацию каждого средства, которое можно предварительно упаковать, и единственным требованием к потребителю будет псевдоним для типа, и тогда его можно будет «вставить в слот».

Насколько я вижу, невозможно иметь несколько файлов конфигурации, и конфигурация провайдера в настоящее время игнорируется. Однако я надеюсь, что, возможно, кто-то нашел подходящее решение.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 12 июля 2011

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

Однако в этом случае я бы склонен использовать XML-файлы, содержащие serialized объект конфигурации для каждого провайдера.

Создайте фабричный метод для десериализации конфигурации, создайте класс конфигурации и создайте каждого конкретного провайдера.

В конфигурации вашего приложения просто сохраните информацию, требуемую производителем, такую ​​как местоположение файла конфигурации XML для каждого поставщика.

Между прочим (и педантично) - не существует такой вещи, как шаблон провайдера. Модель провайдера обычно реализуется путем объединения шаблонов Strategy и Factory.

0 голосов
/ 12 июля 2011

Если вы хотите, чтобы эти файлы конфигурации автоматически использовались API конфигурации в .NET, то для того, чтобы иметь несколько файлов, вам нужно ссылаться на внешние файлы конфигурации из центрального, загруженного в AppDomain при запуске:

http://weblogs.asp.net/pwilson/archive/2003/04/09/5261.aspx

API конфигурации ищет только один файл - вероятно, поэтому другие игнорируются.

Либо создайте собственную оболочку конфигурации вокруг файла и получите к ней доступ через нее.

Опять же, нет ничего плохого в том, что один файл содержит все соответствующие разделы конфигурации.

...