"System.IO.MemoryStream" не содержит определения "для"?

У меня небольшая проблема здесь.

Ошибка1 "System.IO.MemoryStream" не содержит определения для "CopyTo"

Мой код:

// Error occurs here (CopyTo) (For Framework 4.0)
ms.CopyTo(actualAttachment);    
actualAttachment.Position = 0;  

//Change CopyTo to WriteTo For Framework 2.0
ms.WriteTo(actualAttachment);   
actualAttachment.Position = 0;  

Мне пришлось перепечатывать весь код, чтобы убедиться, что все идет в поток, потому что у меня были некоторые проблемы с удалением файла после его отправки. но теперь я получаю эту ошибку.

Так что в принципе это ничего не должно спасать сейчас.

Я просто не обращал внимания на то, какой фреймворк я использовал. Я работаю с 4 типами фреймворков в день, что иногда действительно смущает меня.

5 ответов

Решение

Какую версию фреймворка вы используете? Этот метод доступен только с версии 4 фреймворка. http://msdn.microsoft.com/en-us/library/system.io.stream.copyto(v=vs.100).aspx

Переехать

attach = new Attachment(actualAttachment, ContentType);

в квадратных скобках для StreamWriter и измените его на

ms.Position = 0;
attach = new Attachment(ms, ContentType);

Затем вы можете избавиться от фактического приложения MemoryStream.

Вы уже помещаете данные в поток памяти через StreamWriter, просто используйте его вместо этого.

Попробуй это:

ms.WriteTo(actualAttachment);

У меня была эта конкретная ошибка. Мой проект был ориентирован на 3,5 рамки. Ошибка 8 "System.IO.Stream" не содержит определения для "CopyTo", и невозможно найти метод расширения "CopyTo", принимающий первый аргумент типа "System.IO.Stream" (если вы пропустили директиву using или сборка ссылка?)

мой код:

Stream inputStream = Request.InputStream;

FileStream fileStream = новый FileStream(путь, FileMode.OpenOrCreate);

inputStream.CopyTo (FileStream);

Я изменил настройки проекта> Конфигурация ASP.net> целевой фреймворк на 4.0, и он снова открылся. Это сработало. Спасибо

РЕШИТЬ!

изменено

 ms.CopyTo(actualAttachment);
 actualAttachment.Position = 0;

в

 ms.WriteTo(actualAttachment);
 actualAttachment.Position = 0;

Решил проблему.
Спасибо всем, кто пытается помочь!

Другие вопросы по тегам