Записи с меткой «.net»

Работаем с потоками (c#, .net)

Прочитаем все сразу из потока string content; using(StreamReader reader = new StreamReader(stream)) { content = reader.ReadToEnd(); } Прочитаем построчно из потока List<string> content = new List<string>(); using (StreamReader reader = new StreamReader(stream)) { while (!reader.EndOfStream) content.Add(reader.ReadLine()); } // или content.Clear(); using (StreamReader reader = new StreamReader(stream)) { string line; while ((line = reader.ReadLine()) != null) …

Работаем с pdf ( c#, .net)

В данной заметке будут описаны некоторые методы для работы с библиотекой iTextSharp. Данная библиотека позволяет создавать и изменять pdf документ. создаем документ byte[] pdfDocBytes; using (MemoryStream ms = new MemoryStream()) using (Document doc = new Document()) { PdfWriter.GetInstance(doc, ms); doc.Open(); // do stuff doc.Close(); pdfDocBytes = ms.ToArray(); } задаем фон и размеры для главной страницы …

Работаем с архивом zip (.net, c#)

Распакуем архив в папку string srcZipFile = «d:/Temp/Test.zip»; string dstDirectory = «d:/Temp/Test»; if (Directory.Exists(dstDirectory)) Directory.Delete(dstDirectory); ZipFile.ExtractToDirectory(srcZipFile, dstDirectory); Запакуем обратно в архив if (Directory.Exists(srcZipFile)) Directory.Delete(srcZipFile); ZipFile.CreateFromDirectory(dstDirectory, srcZipFile); Создадим архив в памяти string[] files = new string[] {«d:/Temp/Test1.txt», «d:/Temp/Test2.txt»}; using (var memoryStream = new MemoryStream()) { using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true)) { foreach(string file …

Работа со сборками .net

В данной заметке опишу как описывать зависимости сборок в web.config, как добавлять сборки в gac, как смотреть список зависимых сборок с помощью утилиты ildasm, как создавать и смотреть открытый ключ в vs и др. В Web.config зависимости сборок описываются в элементе assemblyBinding <configuration> <runtime> <assemblyBinding xmlns=»urn:schemas-microsoft-com:asm.v1″> </assemblyBinding> </runtime> </configuration> Для того чтобы наше приложению загружала только самую …

Работа с регулярными выражениями, строками и числами c#

В данной заметке опишу некоторую работу с регулярными выражениями, строками и числами. В дальнейшем данная заметка будет постоянно дополняться. Экранирование слэшей и кавычек. В c# обратные слэши можно экранировать посредством символа @ в определении строки string emailPattern = @»\w+[-.\w]+@\w+[-.\w]+\.\w+[-.\w]+»; // вместо emailPattern = «\\w+[-.\\w]+@\\w+[-.\\w]+\\.\\w+[-.\\w]+»; Кавычки в c# экранируются путем дублирования этой самой кавычки если строка предваряется …

Работа с перечислениями в c#

В данной заметке опишу как создавать перечисления, как парсить, как сравнивать и тп. Создаем перечисление public enum Colors { Red, Green, Blue } Сравниваем перечисления Colors red = Colors.Red; if (red.Equals(Colors.Red)) Console.WriteLine(«Yes»); else Console.WriteLine(«No»); // Вывод: Yes Делаем обход перечислений foreach(Colors c in Enum.GetValues(typeof(Colors)) Console.WriteLine(c); //Вывод: Red Green Blue Конвертируем — в строку, в число …

Работа с логированием в asp.net

Посмотрим логи которые пишет iis сервер по умолчанию. Установим elmah и nlog логирования. Первый удобен тем что имеет веб интерфейс. Второй позволяет писать логи в текстовый файл, что удобно когда нужно исследовать участок кода более подробно. Логи по умолчанию расположены в c:\inetpub\logs\LogFiles\W3SVC{Id}. Id — это идишник сайта, его можно посмотреть в iis manager. Чтобы установить elmah …

Работа с картинками (.net, c#)

Загружаем картинку на сервер [HttpPost] public void UploadImage(HttpPostedFileBase file) { if (file == null) throw new Exception(«Не указан файл.»); if (!new string[] { «image/jpeg», «image/pjpeg», «image/png», «image/gif», «image/bmp» } .Any(x => x == file.ContentType.ToLower())) throw new Exception(«Файл не является изображением.»); System.Drawing.Image image = System.Drawing.Image.FromStream(file.InputStream); image.Save(«d:/Temp/Image.jpg», System.Drawing.Imaging.ImageFormat.Jpeg); } Сжимаем картинки public void ResizeImage(int size, string filePath, …

Работа с файлами и директориями c#

Для работы с файлами и директориями в c# есть такие классы — System.IO.Path, System.IO.File, System.IO.Directory. Приведу примеры использования некоторых методов этих классов, на мой взгляд самых необходимых. Получим директории расположения файла string path = @»c:\\site\path-to-files\file.txt»; string dirName = Path.GetDirectoryName(path); // dirName: c:\\path-to-files Метод Path.GetDirectoryName() вернет такое же значение если передать такие пути c:\\site\path-to-files\ или c:\\site\path-to-files Получим имя файла string fileName = …

Работа с automapper

Установим autommapper и научимся создавать пользовательский automapper. Установим automapper при помощи nuget. Создаем класс AutoMapperDefaultProfile, который будет описывать все наши преобразования объектов. public class AutoMapperDefaultProfile : Profile { protected override void Configure() { //CreateMap<ValueSimpleForm, ProductsValue>() // .ForMember(dest => dest.Value_long, opt => opt.MapFrom(src => Utils.ToLong(src.Value_double))); } } Зарегистрируем этот профиль в Global.asax Mapper.Initialize(x => x.AddProfile<AutoMapperDefaultProfile>()); Чтобы конвертировать Filter …