Пожалуйста, посмотрите на следующий проект VS:
http://cid -a971dd3af5c625e1.office.live.com / browse.aspx / .Public / SL% 5E_DirectPrinting
Это было просто глупое подтверждение концепции, когда у SL не было возможности печати.
Silverlight 4 имеет возможность печати и может также использовать com-взаимодействие.
COM-взаимодействие - только для Windows, и я верю, что это само хостинг wcf, так как для этого требуется полная .NET Framework.
Для самостоятельного хостинга ключ должен быть в состоянии обслуживать clientaccesspolicy.xml.
Ссылка содержит zip-файл с решением VS2008.
Сжатый файл содержит 3 проекта:
• HostGateway.Win - приложение Windows Form, предоставляющее службы для печати и обслуживания файла политики клиентского доступа.
• HostGateway.SL / SL.Web - простое приложение Silverlight для проверки всей идеи.
Некоторая информация о проекте HostGateway.Win:
- Printer.cs Класс, отвечающий за фактическую печать. Действительно простые вещи прямо с сайта MSDN.
- PolicyRetriever.cs Служба, предоставляющая файл clientaccesspolicy.xml.
- Содержимое clientaccesspolicy.xml хранится как ресурс.
- PrinterGateway.cs Сервис, который занимается запросами на печать.
- Form1.cs Форма, в которой размещаются службы WCF.
Обе службы настроены только по коду.
И немного информации о проекте HostGateway.SL:
- Содержит сервисную ссылку на сервис PrinterGateway.
- MainPage использует службы, также настроенные только по коду.
Для тестирования приложения вам необходимо:
- Установить принтер по умолчанию;
- Запустите приложение HostGateway.Win;
- Запустите приложение Silverlight;
- Введите что-нибудь в тексте;
- Нажмите кнопку «Печать»;
- Подождите с тревогой, чтобы увидеть, печатает ли принтер.
Если вы решили проверить это, убедитесь, что приложение win запущено, прежде чем пытаться с ним поговорить.
Если запрос файла политики завершится неудачно, Silverlight не будет пытаться снова. Это означает, что для получения SL для повторного подключения к услуге приложение SL необходимо перезапустить.
Надеюсь, это поможет.
Следующие ссылки содержат информацию о самостоятельном хостинге:
http://blogs.msdn.com/b/carlosfigueira/archive/2008/03/07/enabling-cross-domain-calls-for-silverlight-apps-on-self-hosted-web-services.aspx
http://www.code -magazine.com / article.aspx? Quickid = 0701041 & страница = 1