Мне нужно использовать службу WCF из WPF, разработанную в .NET Core 3.0 preview 5. В Visual Studio я не могу использовать ссылку «Добавить -> Служба», потому что VS сейчас не поддерживает эту опцию.
Мой первый вариант - записать в .csproj все компоненты, которые мне нужны для запуска моего проекта, но это не работает.
Это мой .csproj.
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWPF>true</UseWPF>
</PropertyGroup>
<ItemGroup>
<None Include="Connected Services\ServiceTime\Time.wsdl" />
<None Include="Connected Services\ServiceTime\Time.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Connected Services\ServiceTime\Time1.xsd">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<WCFMetadataStorage Include="Connected Services\ServiceTime\" />
</ItemGroup>
<ItemGroup>
<None Include="Connected Services\ServiceTime\Time.disco" />
</ItemGroup>
<ItemGroup>
<None Include="Connected Services\ServiceTime\configuration91.svcinfo" />
</ItemGroup>
<ItemGroup>
<None Include="Connected Services\ServiceTime\configuration.svcinfo" />
</ItemGroup>
<ItemGroup>
<None Include="Connected Services\ServiceTime\Reference.svcmap">
<Generator>WCF Proxy Generator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Windows.Compatibility" Version="2.1.1" />
</ItemGroup>
<ItemGroup>
<Reference Include="TimeService">
<HintPath>..\..\TimeService\TimeService\bin\TimeService.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
Служба времени работает корректно.
Если кто-нибудь знает руководство по использованию службы WCF в WPF, используйте .NET Core 3.0, дайте мне знать, пожалуйста.
@Andy - реализован является на стороне клиента.
А насчет альтернатив (серверная сторона) MS намекает на gRPC
I cannot use Add -> Service reference because VS doesn't support this option now.
Да, это так. Он находится в разделе «Добавить подключенные службы».
Кажется, вы хотите добавить WCF клиент, но четко обозначьте это. Службы WCF не поддерживаются в Core.
I need to use a WCF service from WPF developed in .NET Core 3.0 preview 5. In Visual Studio I cannot use Add -> Service reference because VS doesn't support this option now.
Для .NET Core вы добавляете его как подключенную службу.
Use the WCF Web Service Reference Provider Tool
...
The WCF Web Service Reference option is applicable to projects created using the following project templates:
- Visual C# > .NET Core
- Visual C# > .NET Standard
- Visual C# > Web > ASP.NET Core Web Application
...
Это работает для службы Любые WCF? Любое обязательство, любой контракт? Или просто сервисы SOAP с WSDL?
@nvoigt Он поддерживает как минимум SOAP, веб-сокеты и net.tcp github.com/dotnet/wcf/tree/master/src/… Также дуплексный режим, где это поддерживает привязка. нет мсмк. dotnet-svcutil
не такой зрелый, как svcutil
, но по большей части вы можете заставить его делать то, что вам нужно.
Wcf не реализован в чистом ядре. Я никогда не пробовал, но меня не удивляет, что вы не можете использовать wcf. Теперь вы должны использовать спокойный сервис, такой как веб-API.