Ich bin sicher nicht der erste mit dem Problem, aber mit der Suche habe ich nichts gefunden.
Problem:
Wir haben eine SOA Architektur, basierend auf ASP.NET Web API (.NET Framework).
Nun startet parallel ein zweites Projekt, welches unsere Basis-Funktionalität verwenden möchte. Dieses Projekt startet mit .NET Core. Da wir nicht 'mal schnell' auf Core gehen können und die anderen natürlich nicht mehr mit .NET Framework starten wollen, habe ich unsere Basis-Funktionalität in .NET Standard überführt. Das funktioniert auch soweit.
Allerdings, habe ich nun das Problem, dass auf die STD Library aufsetzende .NET Framework Libraries Probleme mit der Typ-Kompatibiltät bekommen.
Konkreter Fall:
In der .NET Standard Library gibt es eine Klass mit folgendem Construktor:
public sealed class RestConfigurationSource : BaseConfigurationSource
{
//...
//HttpClient is from:
// Assembly netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
// C:\Program Files\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll
internal RestConfigurationSource(HttpClient httpClient)
{
//...
In einem darauf aufsetzendem Unit-Test Projekt (.NET Framework) versuche ich die Klasse zu initialisieren:
internal static RestConfigurationSource CreateSource()
{
FakeHttpMessageHandler fakeResponseHandler = CreateFakeResponseHandler();
//HttpClient is from:
//System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
//C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Http.dll
var client = new HttpClient(fakeResponseHandler);
//...
var configSrc = new RestConfigurationSource(client);
Beim Versuch in die Methode zu springen bekomme ich folgende Exception:
Fehler |
System.MissingMethodException HResult=0x80131513 Message=Method not found: 'Void MunichRe.Uwpf.Api.Core.Configuration.Rest.RestConfigurationSource..ctor(System.Net.Http.HttpClient)'. Source=MunichRe.Uwpf.Api.Core.UnitTests StackTrace: ... |
Ist für mich erstmal nachvollziehbar. Die beiden Versionen von HttpClient entsprechen unterschiedlichen Klassen. Aber das muss ja ein Problem sein dass bei dem Arbeiten mit .NET Standard und .NET Framework bedacht wurde.
Könnt ihr mir vielleicht auf die Sprünge helfen, gerne einfach mit einem RTFM Link.
Danke schon Mal!
Flo