Quartz, Quartznet
https://github.com/quartznet/quartznet
D:\VC\Quartz\quartznet
D:\VC\2022\CaSln01\CaSln01.sln
Quartz, Quartznet
https://github.com/quartznet/quartznet
D:\VC\Quartz\quartznet
D:\VC\2022\CaSln01\CaSln01.sln
https://learn.microsoft.com/ru-ru/dotnet/api/system.threading.thread.currentthread?view=net-7.0
https://habr.com/ru/articles/482354/
https://learn.microsoft.com/ru-ru/dotnet/api/system.threading.tasks.task.configureawait?view=net-7.0
https://habr.com/ru/articles/721050/
https://devblogs.microsoft.com/dotnet/configureawait-faq/
https://learn.microsoft.com/ru-ru/dotnet/fundamentals/code-analysis/quality-rules/ca2008
https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.configureawait?view=net-7.0
NetworkStream.ReadTimeout, Examples
// Create a client that will connect to a // server listening on the contosoServer computer // at port 11000. TcpClient tcpClient = new TcpClient(); tcpClient.Connect("contosoServer", 11000); // Get the stream used to read the message sent by the server. NetworkStream networkStream = tcpClient.GetStream(); // Set a 10 millisecond timeout for reading. networkStream.ReadTimeout = 10; // Read the server message into a byte buffer. byte[] bytes = new byte[1024]; networkStream.Read(bytes, 0, 1024); //Convert the server's message into a string and display it. string data = Encoding.UTF8.GetString(bytes); Console.WriteLine("Server sent message: {0}", data); networkStream.Close(); tcpClient.Close();
BinaryFormatter is Obsolete
Severity Code Description Project File Line Suppression State
Error SYSLIB0011 'BinaryFormatter.Deserialize(Stream)' is obsolete: 'BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.'
Use Xml or Json Serialization
Не используйте в коде BinaryFormatter. Рассмотрите возможность использования JsonSerializer или XmlSerializer вместо них. Дополнительные сведения см. в статье Руководство по безопасности BinaryFormatter.
Можно временно отключить появляющееся во время компиляции предупреждение об использовании BinaryFormatter (SYSLIB0011
). Перед этим мы рекомендуем тщательно оценить риски для кода. Самый простой способ отключить предупреждения — обособить отдельные места вызова директивами #pragma
.
// Now read the purchase order back from disk
using (var readStream = new FileStream("myfile.bin", FileMode.Open))
{
var formatter = new BinaryFormatter();
#pragma warning disable SYSLIB0011
return (PurchaseOrder)formatter.Deserialize(readStream);
#pragma warning restore SYSLIB0011
}
Предупреждение можно также отключить в файле проекта.
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<!-- Disable "BinaryFormatter is obsolete" warnings for entire project -->
<NoWarn>$(NoWarn);SYSLIB0011</NoWarn>
</PropertyGroup>
В этом случае предупреждение будет отключено во всех файлах с кодом в проекте. Подавление SYSLIB0011
не приводит к отключению предупреждений, вызванных использованием других устаревших API.
Чтобы продолжить использование BinaryFormatter в приложениях ASP.NET, можно повторно включить их в файле проекта. Но делать это настоятельно не рекомендуется. Дополнительные сведения см. в статье Руководство по безопасности BinaryFormatter.
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<!-- Warning: Setting the following switch is *NOT* recommended in web apps. -->
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
</PropertyGroup>
Reflection
Find Method by its name
https://stackoverflow.com/questions/3110280/how-to-use-reflection-to-call-method-by-name
Type thisType = <your object>.GetType();
MethodInfo theMethod = thisType.GetMethod(<The Method Name>);
theMethod.Invoke(this, <an object [] of parameters or null>);
public static R ResponseHelper<T,R>(T request, string serviceAction)
{
var service = new ContentServiceRef.CMSCoreContentServiceClient();
var func = (Func<T,R>)Delegate.CreateDelegate(typeof(Func<T,R>),
service,
serviceAction);
return func(request);
}