Как использовать wcf из wpf, разработанного в .net core 3.0

Мне нужно использовать службу 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, дайте мне знать, пожалуйста.

Wcf не реализован в чистом ядре. Я никогда не пробовал, но меня не удивляет, что вы не можете использовать wcf. Теперь вы должны использовать спокойный сервис, такой как веб-API.

Andy 22.05.2019 11:58

@Andy - реализован является на стороне клиента.

Henk Holterman 22.05.2019 12:20

А насчет альтернатив (серверная сторона) MS намекает на gRPC

Henk Holterman 22.05.2019 13:09
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
3
3 246
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

...

  1. In Solution Explorer, double-click the Connected Services node of the project
  2. On the Connected Services page, click Microsoft WCF Web Service Reference Provider. This brings up the Configure WCF Web Service Reference wizard: enter image description here

Это работает для службы Любые WCF? Любое обязательство, любой контракт? Или просто сервисы SOAP с WSDL?

nvoigt 22.05.2019 12:28

@nvoigt Он поддерживает как минимум SOAP, веб-сокеты и net.tcp github.com/dotnet/wcf/tree/master/src/… Также дуплексный режим, где это поддерживает привязка. нет мсмк. dotnet-svcutil не такой зрелый, как svcutil, но по большей части вы можете заставить его делать то, что вам нужно.

ta.speot.is 22.05.2019 12:37

Другие вопросы по теме