💬 Кто использует паттерн Builder для настройки тестовых данных? В каких ситуациях оправданы дополнительные накладные расходы на обслуживание?
#dotnet #csharp #tip by Dave Callan
Добро пожаловать в уютное сообщество C#! Этот канал создан специально для разработчиков, которые интересуются языком программирования C#. Здесь вы найдете полезные материалы, тесты на знание C#, а также многочисленные подсказки и трюки по использованию этого языка.
Мы приглашаем вас присоединиться к нашему сообществу, где вы сможете общаться с единомышленниками, делиться опытом и учиться новому. Независимо от вашего уровня подготовки, здесь вы обязательно найдете что-то полезное для себя.
Присоединяйтесь к нам прямо сейчас, чтобы углубить свои знания в области C# и стать более успешным разработчиком. Мы уверены, что наш канал поможет вам достичь новых высот в программировании!
@aldrson
09 Jan, 20:28
02 Jan, 20:23
CascadeMode
либо на уровне класса, либо на уровне цепочки правил, особенно при использовании MustAsync
и асинхронных операций.20 Nov, 20:26
10 Nov, 16:05
10 Nov, 11:59
24 Oct, 19:26
...
( три точки) в JavaScript и используется для объединения коллекций.09 Oct, 14:21
30 Jan, 10:51
13 Dec, 15:33
25 Oct, 14:44
push
?17 Oct, 14:32
13 Oct, 14:43
11 Oct, 14:42
HttpClient
?HttpClient
в C# считается переиспользование одного экземпляра клиента для множества запросов. Как минимум во избежание port exhaustion.HttpClient.Timeout
устанавливается единожды, во время создания клиента. И несмотря на наличие public set
'тера, это значение не может быть изменено впоследствии. Любые попытки пресекаются выбрасыванием InvalidOperationException
.TimeSpan timeout = GetMyTimeout();Такое решение можно не только использовать "в лоб", но и обернуть в пайплайн из
using (var tokenSource = new CancellationTokenSource(timeout))
{
var response = await httpClient.GetAsync(uri, tokenSource.Token);
HandleResponse(response);
}
DelegatingHandler
'ов. Для того чтобы оно работало, потребуется убедиться в двух вещах:HttpClient.Timeout
2️⃣ Пользовательский таймаут валиден. Проще говоря, время ожидания больше 0 секунд.04 Oct, 14:37
[FromServices]
для зависимостей, указанных в параметре метода?Services.AddScoped<SomeCustomType>();Ну а в случае, когда такое неявное поведение не нравится или не требуется, его можно отключить следующим образом:
[Route("[controller]")]
[ApiController]
public class MyController : ControllerBase
{
public ActionResult Get(SomeCustomType service) => Ok();
}
Services.Configure<ApiBehaviorOptions>(options =>Поделитесь в комментариях темами, которые хотелось бы разобрать на канале.
{
options.DisableImplicitFromServicesParameters = true;
})
02 Oct, 14:39
IDisplay
, отображающий какие-то произведения искусства IArtwork
.MyPainting
, можно использовать атрибут KeyFilterAttribute
.public class ArtDisplay : IDisplay#полезное #tips
{
public ArtDisplay([KeyFilter("MyPainting")] IArtwork art) { ... }
}
// ...
var builder = new ContainerBuilder();
builder.RegisterType<MyPainting>().Keyed<IArtwork>("MyPainting");
builder.RegisterType<ArtDisplay>().As<IDisplay>().WithAttributeFiltering();
// ...
var container = builder.Build();