var url = new Uri("http://site.com/index.php?199|¶m=1", true);
// ...
var response = wb.UploadValues(url, "POST", data);
using (var client = new HttpClient())
{
var url = new Uri("http://site.com/index.php?199|¶m=1", true);
var data = new StringBuilder();
data.AppendLine("abc=199|");
using (var content = new StringContent(data.ToString(), Encoding.UTF8, "application/x-www-form-urlencoded"))
{
using (var request = new HttpRequestMessage(HttpMethod.Post, url))
{
request.Content = content;
using (var response = client.SendAsync(request).Result)
{
response.EnsureSuccessStatusCode();
// var result = await response.Content.ReadAsStringAsync();
var result = response.Content.ReadAsStringAsync().Result;
}
}
}
}
treeView1.Items.Clear();
GetFiles("C:/Windows/Microsoft.NET", null);
private void GetFiles(string path, TreeViewItem parent)
{
var node = new TreeViewItem() { Header = System.IO.Path.GetFileName(path) };
if (parent == null)
{
treeView1.Items.Add(node);
}
else
{
parent.Items.Add(node);
}
var attr = System.IO.File.GetAttributes(path);
if (attr.HasFlag(System.IO.FileAttributes.Directory))
{
var directories = System.IO.Directory.GetDirectories(path);
foreach (var dir in directories)
{
GetFiles(dir, node);
}
var files = System.IO.Directory.GetFiles(path);
foreach (var file in files)
{
node.Items.Add(System.IO.Path.GetFileName(file));
}
}
}
Мне интересно в какой сфере применяют ASP
HttpContext.Current.Response.RedirectToRoute
(
new
{
controller = "Home",
action = "Index"
}
);
var routeData = ((System.Web.Mvc.MvcHandler)HttpContext.Current.Handler).RequestContext.RouteData;
var urlHelper = new System.Web.Mvc.UrlHelper(HttpContext.Current.Request.RequestContext);
var url = urlHelper.Action("Index", "Home");
string applicationId = "идентификатор вашего приложения";
string scope = "status,email";
string authorizeUrl = "https://oauth.vk.com/authorize";
authorizeUrl += String.Format("?client_id={0}&response_type=code", applicationId);
// authorizeUrl += String.Format("&state={0}", "все что вам нужно");
authorizeUrl += String.Format("&scope={0}", scope);
protected internal void DefaultCallback(object sender, WebBrowserCallbackEventArgs e)
{
// ожидаем, когда будет получен результат
if (e.Url.Query.IndexOf("code=") != -1 || e.Url.Query.IndexOf("oauth_verifier=") != -1)
{
// результат получен, извлекаем код авторизации
// из строка параметров запроса
// e.Url.Query // <= строка параметров запроса
// либо oauth_verifier, либо code - точно уже не помню
}
}
code=полученный код
client_id=идентификатор приложения
client_secret=секретный ключ
grant_type=authorization_code
<DataGrid x:Name="dataGrid" MouseDown="dataGrid_MouseDown"/>
private void dataGrid_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.RightButton == MouseButtonState.Pressed)
{
var row = DataGridRow.GetRowContainingElement(e.OriginalSource as FrameworkElement);
if (row != null)
{
// dataGrid.SelectedIndex = row.GetIndex();
dataGrid.SelectedItem = row;
}
}
}
Выражение await не блокирует поток, в котором оно выполняется. Вместо этого оно указывает компилятору объявить оставшуюся часть асинхронного метода как продолжение ожидаемой задачи. Управление затем возвращается методу, вызвавшему асинхронный метод. Когда задача завершается, она вызывает свое продолжение и возобновляет выполнение асинхронного метода с того места, где она была прервана.
// без ожидания
Console.WriteLine(DateTime.Now);
Task.Run(() => { Thread.Sleep(5000); });
// этот код будет выполнен сразу
Console.WriteLine(DateTime.Now);
// ожидание с await
Console.WriteLine(DateTime.Now);
await Task.Run(() => { Thread.Sleep(5000); });
// этот код будет выполнен, только после завершения выполнения задачи
// текущий (вызывающий) поток не будет приостановлен
// (например, в Windows Form это будет хорошо видно)
Console.WriteLine(DateTime.Now);
Console.WriteLine(DateTime.Now);
var t = Task.Run(() => { Thread.Sleep(5000); });
t.Wait(); // ожидание выполнения задачи
// этот код будет выполнен, только после завершения выполнения задачи
// текущий (вызывающий) поток будет блокирован
// (например, в Windows Form это будет хорошо видно)
Console.WriteLine(DateTime.Now);
// создаем переменную типа EventHandler
EventHandler handler = null;
// создаем анонимный метод для обработки события и передаем его переменной
handler = (sender, e) =>
{
MessageBox.Show("Hello!");
// удаляем обработчик
((Button)sender).Click -= handler;
};
// добавляем обработчик
button1.Click += handler;
// добавляем обработчик
button1.Click += (sender, e) =>
{
MessageBox.Show("Hello!");
// получаем поле EventClick
var f = typeof(Control).GetField
(
"EventClick",
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static
);
// получаем значение EventClick для sender
var k = f.GetValue(sender);
// получаем свойство
var p = sender.GetType().GetProperty
(
"Events", BindingFlags.NonPublic | BindingFlags.Instance
);
// получаем значение свойства Events для sender
var events = (EventHandlerList)p.GetValue(sender, null);
// удаляем обработчик из списка событий
events.RemoveHandler(k, events[k]);
};
public class Toster
{
public event EventHandler AnyEvent;
public void AnyEventHarakiri()
{
foreach (Delegate d in this.AnyEvent.GetInvocationList())
{
this.AnyEvent -= (EventHandler)d;
}
}
}
var t = new Toster();
t.AnyEvent += (sender, e) => { };
t.AnyEventHarakiri();
-- временная таблица
-- в моем примере всего два поля id и value
CREATE TABLE #tmp
(
num int primary key identity,
id bigint,
value nvarchar(max)
);
-- структура xml:
-- <items>
-- <item id="123">значение</item>
-- <item id="456">значение</item>
-- </items>
-- переносим xml в таблицу
INSERT INTO #tmp
SELECT
ISNULL(n.value('@id', 'bigint'), 0), -- идентификатор существующих данных
n.value('.', 'nvarchar(max)') -- значение данных
FROM @xml.nodes('/items/item') AS node(n);
-- обновляем записи в таблице [table], у которых есть идентификатор
UPDATE a SET value = b.value
FROM table AS a
INNER JOIN #tmp AS b ON a.id = b.id
WHERE b.id <> 0;
-- добавляем записи, у которых нет идентификатора
INSERT INTO table (value)
SELECT value FROM #tmp AS b WHERE b.id = 0;
-- удаляем временную таблицу
DROP TABLE #tmp;
public partial class Form1 : Form
{
private int BrushType = 1;
public Form1()
{
InitializeComponent();
// создаем PictureBox
var pic = new PictureBox { Dock = DockStyle.Fill, BackColor = Color.White };
pic.MouseClick += PictureBox_MouseClick;
this.Controls.Add(pic);
// создаем панель для кнопок
var panel = new FlowLayoutPanel { Dock = DockStyle.Top, AutoSize = true };
this.Controls.Add(panel);
// кнопки
var btn = new RadioButton
{
Text = "Круг",
Tag = 1,
Appearance = Appearance.Button,
Checked = true,
AutoSize = true
};
btn.Click += Button_Click;
panel.Controls.Add(btn);
btn = new RadioButton
{
Text = "Не круг",
Tag = 2,
Appearance = Appearance.Button,
AutoSize = true
};
btn.Click += Button_Click;
panel.Controls.Add(btn);
btn = new RadioButton
{
Text = "Квадратный круг",
Tag = 3,
Appearance = Appearance.Button,
AutoSize = true
};
btn.Click += Button_Click;
panel.Controls.Add(btn);
}
private void Button_Click(object sender, EventArgs e)
{
var btn = (RadioButton)sender;
this.BrushType = (int)btn.Tag;
}
private void PictureBox_MouseClick(object sender, MouseEventArgs e)
{
// получаем ссылку на PictureBox
var pic = (PictureBox)sender;
// получаем Graphics из PictureBox
var g = pic.CreateGraphics();
if (this.BrushType == 2)
{
// рисуем не круглый квадрат
g.DrawRectangle(Pens.Black, e.X, e.Y, 50, 50);
}
else if (this.BrushType == 3)
{
// рисуем квадратный круг
Point[] points = new Point[6];
int half = 50 / 2;
int quart = 50 / 4;
points[0] = new Point(e.X + quart, e.Y);
points[1] = new Point(e.X + 50 - quart, e.Y);
points[2] = new Point(e.X + 50, e.Y + half);
points[3] = new Point(e.X + 50 - quart, e.Y + 50);
points[4] = new Point(e.X + quart, e.Y + 50);
points[5] = new Point(e.X, e.Y + half);
g.DrawPolygon(Pens.Black, points);
}
else
{
// рисуем эллипс
g.DrawEllipse(Pens.Black, e.X, e.Y, 50, 50);
}
}
}
var pic = (PictureBox)sender;
if (pic.Image == null) { pic.Image = new Bitmap(pic.Width, pic.Height); }
var bmp = new Bitmap(pic.Image);
var g = Graphics.FromImage(bmp);
pic.Image = bmp;
string path = @"1.dat";
int len = 1024 * 1024;
var rnd = new Random();
var sw = Stopwatch.StartNew();
var b = new byte[4];
Console.WriteLine("Test started");
using (var map = MemoryMappedFile.CreateFromFile(path, FileMode.Create, path, len))
{
using (var accessor = map.CreateViewAccessor())
{
for (var i = 0; i < len / 4; ++i)
{
b[0] = (byte)rnd.Next(0, 255);
b[1] = (byte)rnd.Next(0, 255);
b[2] = (byte)rnd.Next(0, 255);
b[3] = (byte)rnd.Next(0, 255);
accessor.WriteArray(rnd.Next(0, len / 4) * 4, b, 0, 4);
}
}
}
Console.WriteLine("Test end time - " + sw.ElapsedMilliseconds);
Console.ReadKey();
[Serializable]
public class MyClass
{
}
// данные, которые будем сериализовать
var data = new List<int> { 1, 2, 3 };
// выполняем сериализацию
// в MemoryStream (можно в любой Stream)
var bf = new BinaryFormatter();
var m = new MemoryStream();
bf.Serialize(m, data);
// курсор потока переводим в начало, т.к. мы работали с потоком выше
// если открывать новый поток, то это делать не обязательно
m.Position = 0;
// выполняем десериализацию данных из MemoryStream
var result = (List<int>)bf.Deserialize(m);
// выводим результат в консоль
result.ForEach(itm => Console.WriteLine(itm));
public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
{
if (info == null)
{
throw new ArgumentNullException("info");
}
info.AddValue("Ключ", "Значение");
info.AddValue("Ключ2", this.ИмяСвойства);
// и т.д.
}
// конструктор
protected ИмяКласса(SerializationInfo info, StreamingContext context)
{
if (info == null)
{
throw new ArgumentNullException("info");
}
this.Свойство = info.GetValue("Ключ", typeof(типДанных));
this.ИмяСвойства = (string)info.GetValue("Ключ2", typeof(string));
// и т.д.
}
[Serializable]
public class MyDictionary : Dictionary<string, object>, ISerializable
{
public MyDictionary() { }
protected MyDictionary(SerializationInfo info, StreamingContext context)
{
if (info == null)
{
throw new ArgumentNullException("info");
}
int count = info.GetInt32("Count"); // получаем число элементов
for (int i = 0; i < count; i++) // перебираем элементы
{
// получаем ключ и значение по индексу элемента
string key = info.GetString(String.Format("ItemKey{0}", i));
object value = info.GetValue(String.Format("ItemValue{0}", i), typeof(object));
// добавляем элемент в себя
this.Add(key, value);
}
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
if (info == null)
{
throw new ArgumentNullException("info");
}
// перебираем все элементы коллекции
int i = 0;
foreach (KeyValuePair<string, object> item in this)
{
// добавляем отдельно ключ и значение
info.AddValue(String.Format("ItemKey{0}", i), item.Key, typeof(string));
info.AddValue(String.Format("ItemValue{0}", i), item.Value);
i++;
}
// запоминаем, сколько всего элементов
info.AddValue("Count", this.Count);
}
}
// выполняем сериализацию коллекции
var data = new MyDictionary();
data.Add("Key", "Value");
data.Add("Key2", "Value2");
data.Add("Key3", 123);
var bf = new BinaryFormatter();
var m = new MemoryStream();
bf.Serialize(m, data);
// выполняем десериализацию
m.Position = 0;
var result = (MyDictionary)bf.Deserialize(m);
// выводим результат
foreach (var item in result)
{
Console.WriteLine("{0} = {1}", item.Key, item.Value);
}
FileInfo f = new FileInfo(@"C:\example.dat");
using (FileStream fs = f.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (BinaryReader br = new BinaryReader(fs))
{
int bytesRead = 0;
byte[] buffer = new byte[256]; // размер буфера 256 единиц байт
StringBuilder result = new StringBuilder();
while ((bytesRead = br.Read(buffer, 0, buffer.Length)) != 0) // читаем не более 256 единиц байт в buffer
{
// из buffer следует извлекать не более bytesRead (в конце это число может быть меньше 255)
}
}
}
string[] arr = {"слово 1", "слово 2"};
return DbSet.Where(u => Array.IndexOf(arr, u.FirstName) != -1);
string[] arr = {"слово 1", "слово 2"};
return DbSet.Where(u => arr.Any(itm=> itm == u.FirstName));