Я пытаюсь взять код в веб-сервисе .ASMX и преобразовать его в проект библиотеки классов. В проекте веб-службы есть файл web.config с:
<applicationSettings>
<myService.Properties.Settings>
<setting name="DownloadChunkSize" serializeAs="String">
<value>100000</value>
</setting>
.. и код в файле FileService.asmx.cs использует это для получения значения:
int chunkSize = (int)Properties.Settings.Default.DownloadChunkSize;
Когда я пытаюсь реструктурировать этот код для устранения веб-службы .asmx, я получаю ошибку времени компиляции в моем проекте библиотеки классов, потому что больше нет доступного web.config. Позвольте мне попытаться объяснить немного больше о том, что я сделал (и почему):
Мотивация для этого заключается в упрощении моих проектов. То есть у меня есть решение Vstudio с проектом .asmx, которое работает. Он имеет несколько методов и инкапсулирует связь с другим веб-сервисом .asmx, предоставляемым поставщиком.
Новый дизайн, который я пытаюсь сделать, выглядит следующим образом:
Проект 1 - это проект библиотеки классов, который называется ProxyASMX и содержит веб-ссылку на веб-службу поставщика. Я не предоставил здесь никакого кода; он просто имеет небольшой app.config, указывающий на веб-сервис поставщика.
Project 2 - это проект библиотеки классов со ссылкой на ProxyASMX.dll. Код в этом файле FileService.cs такой же, как у моего исходного веб-сервиса, но атрибуты [webmethod] были удалены. У меня проблемы с компиляцией этого проекта.
Project 3 - это проект веб-приложения с двумя HTTPHandlers - Upload.ashx и Download.ashx. Этот проект будет иметь ссылку на библиотеку классов Project 2. Я попытался заменить небольшой контент по умолчанию web.config на более полный контент web.config из исходного решения, но когда это не сработало, я подумал, что лучше проконсультироваться с экспертами об этом предприятии.
Надеюсь, вышеприведенный набросок понятен. Я думаю, это должно быть очень выполнимо, но теперь я не уверен.