XML String to dynamic - пример на C#

Язык программирования C#

Пример преобразования XML в dynamic и его использование.

Для выполнения кода потребуются библиотеки:

using System;
using System.ComponentModel;
using System.Xml.Linq;
using Newtonsoft.Json;


Сам код:

string str = "<response><setter><name>Kiril</name></setter></response>";
XDocument doc = XDocument.Parse(str);
string jsn = JsonConvert.SerializeXNode(doc);
dynamic res = JsonConvert.DeserializeObject(jsn);

Console.WriteLine(res.response.setter.name);


Данный код преобразует строку в XML, затем XML в JSON и уже его в динамический объект, далее из динамического объекта получает свойство Name и выводит его в консоль.

Комментировать...

C# XML dynamic преобразование

Пример десериализации XML в dynamic (Deserialize XML C#)

Язык программирования C#

Пример:

using System;
using Newtonsoft.Json;
using System.Xml.Linq;

namespace ConsoleAppTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string xml = @"<response><user>Roman</user><status>Active</status></response>";
            XDocument doc = XDocument.Parse(xml);
            string  jsn = JsonConvert.SerializeXNode(doc);
            dynamic response = JsonConvert.DeserializeObject(jsn);
            Console.WriteLine(response.response.status);
            Console.WriteLine(response.response.user);
            Console.ReadKey();
        }
    }
}

Комментировать...

Deserialize xml dynamic C#

Интерполяция строк в языке C#

Язык программирования C#

Интерполированной строкой в C# называется строка перед которой расположен символ $.
Такая интерполированная строка может включать выражения, которые заключены в фигурные скобки:

int x = 18;
Console.Write($"Указанный возраст {x} лет."); // Выводит: Указанный возраст 18 лет.

Внутри фигурных скобок может быть помещено любое допустимое выражение C# произвольного типа, C# при этом преобразует значение в строку, вызвав ToString(), или эквивалентный метод для заданного типа. Формат вывода можно менять добавлением двоеточия и строки формата, например:

string s = $"223 в шестнадцатиричном формате: {223:X2}"; // X2 - шестнадцатиричное значение из двух знаков.
// В итоге строка будет "223 в шестнадцатиричном формате: DF"

Читаль далее...

C# C шарп интерполяция строки

POST запрос application/x-www-form-urlencoded на сервер при помощи WebRequest С#

Язык программирования C#

Пример метода производящего запрос data на сервер и получение ответа res по указанному адресу url:

public static string ServerRequest(string data, string url)
        {
            string res = "";
            try
            {
                // Чтобы не проверял SSL а просто шёл и брал что дают по HTTPS
                System.Net.ServicePointManager.ServerCertificateValidationCallback +=
                    delegate (object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
                                System.Security.Cryptography.X509Certificates.X509Chain chain,
                                System.Net.Security.SslPolicyErrors sslPolicyErrors)
                    {
                        return true; // **** Всегда принимаем
                    };

                var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                httpWebRequest.ContentType = "application/x-www-form-urlencoded";
                httpWebRequest.Method = "POST";
                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    streamWriter.Write(data);
                    streamWriter.Flush();
                    streamWriter.Close();
                }

                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    var result = streamReader.ReadToEnd();
                    res = result;
                }
            }
            catch (WebException ex)
            {

                using (var streamReader = new StreamReader(ex.Response.GetResponseStream()))
                {
                    var result = streamReader.ReadToEnd();
                    res = result;
                }
                Program.Logger.Error(ex, ex.Message);
            }
            Program.Logger.Info(res);
            return res;
        }

Комментировать...

WebRequest C# POST

Ссылочные локальные переменные в C# 7

Язык программирования C#

Начиная с версии C# 7 в языке появилась возможность, позволяющая объявить локальную переменную, ссылающуюся на элемент массива или на поле в объекте:

int[] simpleArray = {0, 1, 2, 3, 4, 5, 6, 7, 8};
ref int simpleElementRef = ref simpleArray[3];

В примере выше simpleElementRef — ссылка на simpleArray[3]. Изменение simpleElementRef приводит к изменению элемента массива:

simpleElementRef *= 15;
Console.WriteLine(simpleElementRef);      // 15
Console.WriteLine(simpleArray[3]);        // 15

В качестве цели ссылочной локальной переменной может быть указан элемент массива, поле, или обычная локальная переменная. Целью не может быть свойство.

Читаль далее...

ref C# NET программирование

Switch Expressions - Выражения переключатели - Новинка в C# 8

Язык программирования C#

Хорошая новость, теперь можно реализовать SWITCH по новому.
В C# 8 версии вводятся выражения-переключатели, которые реализуют более краткий синтаксис возвращения значения.

Вот синтаксис выражения SWITCH на примере:

static string Display(object o) => o switch
{
    Point { X: 0, Y: 0 }         => "origin",
    Point { X: var x, Y: var y } => $"({x}, {y})",
    _                            => "unknown"
};

В этом примере сначала проверяется соответствие шаблону типа Point, а затем шаблону свойств внутри {фигурных скобок}.
Затем символ подчеркивания "_" Описывает шаблон сброса, аналогичный «default:» для операторов switch.

Далее

C# switch expressions programming new

Cors Policy в .Net Core Web Api - добавляем поддержку

Язык программирования C#

Для добавления поддержки CorsPolicy в .NET Core приложении открываем файл Startup.cs и меняем методы ConfigureServices и Configure, следующим образом:

ConfigureServices

public void ConfigureServices(IServiceCollection services)
        {
            // Добавляем CorsPolicy
            services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                    builder => builder.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials());
            });
            
            
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }

Читаль далее...

CorsPolicy C# NET Net Core

Улучшение качества сохраняемого изображения SixLabors.ImageSharp

Язык программирования C#

Задать качество при сохранении изображения с использованием библиотеки SixLabors.ImageSharp можно следующим образом:

image.SaveAsJpeg(path_add, new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder { Quality = 100 });

Комментировать...

SixLabors.ImageSharp C# Image Jpeg

OpenXML - Пример создания Excel файла на C#

Язык программирования C#

В данной публикации приведен пример генерации Excel файла при помощи библиотеки OpenXML.
Отличие этой библиотеки OpenXML от Microsoft.Office.Interop.Excel в быстродействии которое на порядок выше.

Для работы с Excel документами необходимо установить расширение DocumentFormat.OpenXML из Nuget, оно позволит создавать Excel документы для версии Microsoft Office не ниже 2010.

Так-же для работы нам понадобится добавить в проект стандартную библиотеку WindowsBase, просто через Add References, без нее приложение не скомпилируется.

Ниже я приведу пример того, с чем работал сам, первоначальный вариант примера был найден где-то на просторах англоязычного интернета, переработан и теперь выглядит так — как выглядит, с моими комментариями и правками.

Пример демонстрирует формирование маленького Excel файла, который содержит тестовый текст в различных ячейках с применением разных стилей, как на изображении ниже:

OpenXML - C# - Excel

Исходный код примера консольного приложения формирующего Excel на изображении выше:

Читаль далее...

OpenXML C# Excel пример Example Microsoft Office

C# .NET - Получение информации по пользователю в домене

Язык программирования C#

В данной публикации приведен пример получения информации по пользователю в домене AD с использованием C#.

Для того чтобы всё заработало необходимо подключить библиотеку:

using System.DirectoryServices.AccountManagement;


Затем можно получать параметры по пользователю.

            PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

            var loginName = HttpContext.User.Identity.Name.ToString();

            UserPrincipal user = UserPrincipal.FindByIdentity(ctx, loginName);

            if (user != null)
            {
                // Получаем SID пользователя
                var userSid = user.Sid;

                // Получаем EMail пользователя
                var userEmail = user.EmailAddress;

                // Получаем Количество неудачных попыток входа пользователя
                var userBadLogons = user.BadLogonCount;

                // ФИО пользователя ( отображаемое имя)
                var userName = user.DisplayName;

                // Системное имя (по сути логин)
                var userSamAccountName = user.SamAccountName;

                var userFullName = String.Format("{0} {1} {2}", userName, userSamAccountName, userBadLogons);
                ViewBag.Message = userFullName;
            }

Читаль далее...

C# NET AD UserPrincipal AccountManagement

Работа с Postgresql в C#

Не так давно занялся разработкой приложения на C# работающего на базе PostreSQL, появилась информаци (читать далее...)

1098  
Работа с MySQL в C#

Надеюсь данная публикация не даст читателям повторить мои ошибки и поможет сделать изначально правил (читать далее...)

648  
Работа со строками в Oracle (PL/SQL)

Основные способы обработки строковых значений в Oracle. В этой публикации я приведу основные функции (читать далее...)

628  
Поиск и регулярные выражения в MySQL

СУБД MySQL имеет различные инструменты для осуществления поиска, среди которых оператор LIKE, осущес (читать далее...)

471  
Передача параметров между формами в C#

Часто возникает необходимость передать определённые параметры между формами в одном приложении, напр (читать далее...)

455  
OpenXML - Пример создания Excel файла на C#

В данной публикации приведен пример генерации Excel файла при помощи библиотеки OpenXML. Отличие это (читать далее...)

438  
Установка русской кодировки на уже созданную базу данных (смена COLLATION)

Полезный пример изменения кодировки (COLLATION) на уже созданной базе данных. В данном примере устан (читать далее...)

412  
Работа с XML в Oracle PL/SQL (Часть 1)

В этой публикации я приведу основные способы работы с XML в Oracle, которые сам использую. Здесь буд (читать далее...)

394  
Курсоры в MSSQL - перебор выборки в цикле.

Команды манипулирования данными SELECT, UPDATE, DELETE работают сразу с группами строк. Эти группы, (читать далее...)

347  
Функция Oracle TO_DATE (PL/SQL)

Функция TO_DATE — преобразует строку в переменную времени DATE. Синтаксис: TO_DATE(исходная_строка, (читать далее...)

321