data source=DESKTOP-K4U1293;initial catalog=IPhoneDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework
.Server=DESKTOP-K4U1293;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=IPhoneDB;
Trusted_Connection=Yes;
.Server=(localdb)\v11.0;Integrated Security=true;
AttachDbFileName=|DataDirectory|mydbfile.mdf;
...
private Subject<int> myHotkey = new Subject<int>();
public MainForm()
{
...
myHotkey
.AsObservable()
.Throttle(TimeSpan.FromSeconds(1))
.Subscribe(hotkeyid => MessageBox.Show("Нажата горячая клавиша с ID: " + hotkeyid));
}
...
protected override void WndProc(ref Message keyPressed)
{
...
switch (keyPressed.WParam.ToInt32())
{
case 1:
{
SetPrtSc();
myHotkey.OnNext(keyPressed.WParam.ToInt32());
}
break;
...
Delegate
(с большой буквы) - это статический класс, которые содержит методы для работы с делегатами. Сам же делегат нужно объявить через ключевое слово delegate (с маленькой буквы), как класс или интерфейс. Например: public delegate void TestDelegate(string message);
MyClass
и т.п., а не само ключевое слово class. В приведенном примере тип делегата будет TestDelegate
. Чтобы передать с помощью делегата ссылку на функцию, сигнатуры функции и делегата должны полностью совпадать. В случае приведенного примера TestDelegate
, функция должна также возвращать void
и принимать string
. public delegate void MyDelegate();
Этому делегату вы можете присвоить ссылку на ваш метод void init()
. Func
и Action
. Delegate
на Action
в вашем коде, и всё должно работать. using System.Net.Http;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("MyHeader", "MyHeaderValue");
var response = client.PostAsync("https://toster.ru", new StringContent("{\"Data\": \"Test\"}")).Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
var username = "username";
var password = "password";
var authValue = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}"));
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", authValue);
client.DefaultRequestHeaders.Add("MyHeader", "MyHeaderValue");
var response = client.PostAsync("https://toster.ru", new StringContent("{\"Data\": \"Test\"}")).Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
var token = "token"; // вам нужно где-то получить токен
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
client.DefaultRequestHeaders.Add("MyHeader", "MyHeaderValue");
var response = client.PostAsync("https://toster.ru", new StringContent("{\"Data\": \"Test\"}")).Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
public async Task<List<AccountListView>> GetAsync()
{
var policy = Policy
.Handle<UnauthorizedException>()
.RetryAsync(
retryCount: 1,
onRetryAsync: (e, i) => Context.Renew());
return await policy.ExecuteAsync(TryGetAccountListAsync);
}
policy
можно переиспользовать. Т.е. вам не придется больше плодить копипасту, достаточно объявить одну политику на приложение, и дальше просто вызывайте то что требует обновления токена через эту политику. var myEntities = new MyEntity[100];
var maxThreads = 15;
System.Threading.Tasks.Parallel.ForEach(
myEntities,
new System.Threading.Tasks.ParallelOptions { MaxDegreeOfParallelism = maxThreads },
entity =>
{
entity.Do()
});
var myEntities = new MyEntity[100];
var maxThreads = 15;
var semaphoreSlim = new SemaphoreSlim(maxThreads);
var tasks = new List<Task>(myEntities.Length);
foreach (var entity in myEntities)
{
tasks.Add(Task.Run(() =>
{
semaphoreSlim.Wait();
try
{
entity.Do();
}
finally
{
semaphoreSlim.Release();
}
}));
}
Task.WaitAll(tasks.ToArray());
var myEntities = new MyEntity[100];
var maxThreads = 3;
var semaphore = new Semaphore(maxThreads, maxThreads);
var threads = new List<Thread>(myEntities.Length);
foreach (var entity in myEntities)
{
var thread = new Thread(() =>
{
semaphore.WaitOne();
try
{
entity.Do();
}
finally
{
semaphore.Release();
}
});
threads.Add(thread);
thread.Start();
}
foreach (var thread in threads)
thread.Join();
services.AddTransient<IEmailService, EmailService>();
services.Configure<EmailServiceOptions>(options =>
{
options._emailAddress = "email";
options._emailPassword = "password";
options._name = "name";
});
class EmailService
{
public EmailService(IOptions<EmailServiceOptions> optionsAccessor)
{
_emailAddress = optionsAcessor.Value.EmailAddress;
....
}
}
...файл или сборку «sorttbls.nlp» или один из зависимых от них компонентов...- чего-то не хватает, либо самого «sorttbls.nlp», либо еще чего-то. Что делать? - искать то, чего недостает. Если вы уже пользуетесь декомпилятором, то в нем должна быть функция просмотра зависимостей, сравните список зависимостей с тем, что у вас в билд директории.
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols>
</PropertyGroup>