Как я могу поймать ExtendedSocketException? - PullRequest
0 голосов
/ 06 июля 2019

Это может звучать глупо, но я просто не могу поймать ExtendedSocketException, который выбрасывается SocketTaskExtensions.ConnectAsync().

Полное пространство имен: System.Net.Internals.SocketExceptionFactory.ExtendedSocketException

Компилятор жалуется с Cannot resolve symbol 'ExtendedSocketException'. И моя библиотека классов, и тестовые проекты ориентированы на .Net Core 2.1.

Также нет такой ссылки или пакета Nuget, который можно было бы добавить. По крайней мере, я ничего не могу найти ... Кроме того, на 1011 *https://docs.microsoft.com...

ничего не видно

Что я здесь не так делаю?

[Fact]
[Trait("Category", "UnitTest")]
public async Task Should_Throw_Exception_If_Port_Unreachable()
{
    // Arrange
    var client = new TcpConnector();
    var nonListeningPort = 81;
    var endpoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), nonListeningPort);

    // Act & Assert
    var connectTask = client.ConnectAsync(endpoint);
    Func<Task> func = async () => { await connectTask; };

    func.Should().Throw<ExtendedSocketException>();
}

1 Ответ

0 голосов
/ 06 июля 2019

ExtendedSocketException - это класс private, поэтому вы не можете ссылаться на него вне .NET.Однако вы можете поймать SocketException и проверить сообщение об исключении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...