diff --git a/examples/WireMock.Net.Console.Net472.Classic/WireMock.Net.Console.Net472.Classic.csproj b/examples/WireMock.Net.Console.Net472.Classic/WireMock.Net.Console.Net472.Classic.csproj
index e733692b..b6caa8ec 100644
--- a/examples/WireMock.Net.Console.Net472.Classic/WireMock.Net.Console.Net472.Classic.csproj
+++ b/examples/WireMock.Net.Console.Net472.Classic/WireMock.Net.Console.Net472.Classic.csproj
@@ -241,8 +241,8 @@
..\..\packages\System.IO.Pipelines.4.5.3\lib\netstandard2.0\System.IO.Pipelines.dll
-
- ..\..\packages\System.Linq.Dynamic.Core.1.2.16\lib\net46\System.Linq.Dynamic.Core.dll
+
+ ..\..\packages\System.Linq.Dynamic.Core.1.2.18\lib\net46\System.Linq.Dynamic.Core.dll
..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll
diff --git a/examples/WireMock.Net.Console.Net472.Classic/packages.config b/examples/WireMock.Net.Console.Net472.Classic/packages.config
index 24527bb1..38d2b8fa 100644
--- a/examples/WireMock.Net.Console.Net472.Classic/packages.config
+++ b/examples/WireMock.Net.Console.Net472.Classic/packages.config
@@ -67,7 +67,7 @@
-
+
diff --git a/examples/WireMock.Net.StandAlone.Net461/WireMock.Net.StandAlone.Net461.csproj b/examples/WireMock.Net.StandAlone.Net461/WireMock.Net.StandAlone.Net461.csproj
index f4adcaef..2d1224de 100644
--- a/examples/WireMock.Net.StandAlone.Net461/WireMock.Net.StandAlone.Net461.csproj
+++ b/examples/WireMock.Net.StandAlone.Net461/WireMock.Net.StandAlone.Net461.csproj
@@ -225,8 +225,8 @@
..\..\packages\System.IO.Pipelines.4.5.2\lib\netstandard2.0\System.IO.Pipelines.dll
-
- ..\..\packages\System.Linq.Dynamic.Core.1.2.16\lib\net46\System.Linq.Dynamic.Core.dll
+
+ ..\..\packages\System.Linq.Dynamic.Core.1.2.18\lib\net46\System.Linq.Dynamic.Core.dll
..\..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll
diff --git a/examples/WireMock.Net.StandAlone.Net461/packages.config b/examples/WireMock.Net.StandAlone.Net461/packages.config
index d51deb61..0ee950d0 100644
--- a/examples/WireMock.Net.StandAlone.Net461/packages.config
+++ b/examples/WireMock.Net.StandAlone.Net461/packages.config
@@ -65,7 +65,7 @@
-
+
diff --git a/src/WireMock.Net.Abstractions/Server/IWireMockServer.cs b/src/WireMock.Net.Abstractions/Server/IWireMockServer.cs
index e0e2db5f..f24f8a4e 100644
--- a/src/WireMock.Net.Abstractions/Server/IWireMockServer.cs
+++ b/src/WireMock.Net.Abstractions/Server/IWireMockServer.cs
@@ -38,11 +38,21 @@ namespace WireMock.Server
///
List Ports { get; }
+ ///
+ /// Gets the first port.
+ ///
+ int Port { get; }
+
///
/// Gets the urls.
///
string[] Urls { get; }
+ ///
+ /// Gets the first url.
+ ///
+ string Url { get; }
+
//ConcurrentDictionary Scenarios { get; }
///
diff --git a/src/WireMock.Net/Server/WireMockServer.cs b/src/WireMock.Net/Server/WireMockServer.cs
index de97a02e..2bd3dc73 100644
--- a/src/WireMock.Net/Server/WireMockServer.cs
+++ b/src/WireMock.Net/Server/WireMockServer.cs
@@ -7,6 +7,7 @@ using System.Linq;
using System.Threading;
using JetBrains.Annotations;
using Newtonsoft.Json;
+using Stef.Validation;
using WireMock.Admin.Mappings;
using WireMock.Authentication;
using WireMock.Exceptions;
@@ -18,7 +19,6 @@ using WireMock.RequestBuilders;
using WireMock.ResponseProviders;
using WireMock.Serialization;
using WireMock.Settings;
-using Stef.Validation;
namespace WireMock.Server
{
@@ -40,14 +40,22 @@ namespace WireMock.Server
[PublicAPI]
public bool IsStarted => _httpServer != null && _httpServer.IsStarted;
- ///
+ ///
[PublicAPI]
public List Ports { get; }
- ///
+ ///
+ [PublicAPI]
+ public int Port => Ports?.FirstOrDefault() ?? default(int);
+
+ ///
[PublicAPI]
public string[] Urls { get; }
+ ///
+ [PublicAPI]
+ public string Url => Urls?.FirstOrDefault();
+
///
/// Gets the mappings.
///
diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj
index b13e512a..759e778a 100644
--- a/src/WireMock.Net/WireMock.Net.csproj
+++ b/src/WireMock.Net/WireMock.Net.csproj
@@ -60,7 +60,7 @@
-
+
diff --git a/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj b/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj
index 7505d52d..eb10c5cf 100644
--- a/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj
+++ b/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj
@@ -59,7 +59,7 @@
-
+
diff --git a/test/WireMock.Net.Tests/WireMockServer.Admin.cs b/test/WireMock.Net.Tests/WireMockServer.Admin.cs
index 3a0734ea..bea1916c 100644
--- a/test/WireMock.Net.Tests/WireMockServer.Admin.cs
+++ b/test/WireMock.Net.Tests/WireMockServer.Admin.cs
@@ -324,7 +324,7 @@ namespace WireMock.Net.Tests
Check.That(mappings).HasSize(2);
// when
- var response = await new HttpClient().GetAsync("http://localhost:" + server.Ports[0] + "/1").ConfigureAwait(false);
+ var response = await new HttpClient().GetAsync("http://localhost:" + server.Port + "/1").ConfigureAwait(false);
// then
Check.That((int)response.StatusCode).IsEqualTo(400);
diff --git a/test/WireMock.Net.Tests/WireMockServerTests.cs b/test/WireMock.Net.Tests/WireMockServerTests.cs
index f5e0643f..07d36fdf 100644
--- a/test/WireMock.Net.Tests/WireMockServerTests.cs
+++ b/test/WireMock.Net.Tests/WireMockServerTests.cs
@@ -328,7 +328,7 @@ namespace WireMock.Net.Tests
var server = WireMockServer.StartWithAdminInterface();
// Act
- var response = await new HttpClient().PostAsync($"{server.Urls[0]}/__admin/mappings", stringContent).ConfigureAwait(false);
+ var response = await new HttpClient().PostAsync($"{server.Url}/__admin/mappings", stringContent).ConfigureAwait(false);
// Assert
Check.That(response.StatusCode).Equals(HttpStatusCode.Created);