РЕДАКТИРОВАТЬ : Я ответил на это, думая, что вам нужен загрузчик Silverlight, но на самом деле похоже, что вы хотите загрузчик Silverlight. Вы можете сделать то же самое, что я предложил для загрузчика, за исключением использования HTTP GET, или Binary WCF, или Sockets.
Я написал загрузчик Silverlight 2 с индикатором выполнения и смоделировал его после this one. Он использует HTTP POST для отправки файла на сервер по одной части за раз. Сложность в том, что чем больше ваш POST, тем быстрее будет загружен файл, но индикатор выполнения обновляется только один раз за POST. Поэтому я написал алгоритм, который динамически пытается найти самый большой размер POST, который занимает меньше секунды.
Если вы хотите использовать WCF вместо HTTP POST, это, вероятно, лучше, потому что Silverlight 3 теперь поддерживает двоичную кодировку сообщений:
ИЛИ вы можете написать реализацию сокетов - Silverlight поддерживает это, но это может быть немного сложнее в настройке и требует, чтобы на вашем сервере был открыт порт в диапазоне 4502-4532, а порт 943 открыт для политики файл .