在命名空间 System.Net.Security 中找不到类型名称“ProtectionLevel”

问题描述 投票:0回答:1

在我们的项目中,我们需要实现一个 SOAP 客户端来与我们的客户端进行通信。使用 .wsdl 生成客户端后,我们不断收到错误“在命名空间 'System.Net.Security' 中找不到类型名称 'ProtectionLevel'。此类型已转发到程序集 'System.Net.Security,版本=8.0.0.0”。该错误发生在贯穿始终的属性上。例如这里:

    [System.ServiceModel.MessageContractAttribute(IsWrapped=false, ProtectionLevel=System.Net.Security.ProtectionLevel.Sign)]
    public partial class getAnomalyReportRequest
    {
                [System.ServiceModel.MessageHeaderAttribute(Namespace="xxx", ProtectionLevel=System.Net.Security.ProtectionLevel.None)]
        public Ict.EnergyNxt.Tso.Client.AcknowledgementResponse.MessageAddressing MessageAddressing;
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="xxx", ProtectionLevel=System.Net.Security.ProtectionLevel.Sign, Order=0)]
        public Ict.EnergyNxt.Tso.Client.AcknowledgementResponse.GetMessageRequest getMessageRequest;

需要明确的是,ENUM ProtectionLevel.Sign 已找到并且不是问题。 “Protectionlevel=”上发生错误。这很奇怪,因为在查看反编译的 MessageContractAttribute 时,Protectionlevel 实际上存在(并显示“System.Net.Security,Version=8.0.0.0”)。

我们的项目正在运行目标框架net8.0。我们已将 System.Net.Security 包包含在其最新版本 4.3.2 中。出于测试目的,我们还尝试在其最新版本中包含其他 .net.security 软件包(不应需要)。

对可能的原因有什么想法吗?

.net soap soap-client
1个回答
0
投票

您可以使用全名(System.Net.Security.ProtectionLevel)代替 ProtectionLevel 类型并检查吗?

© www.soinside.com 2019 - 2024. All rights reserved.