gpt4 book ai didi

c# - 在 WCF 服务中时为 "unreachable code detected"

转载 作者:太空宇宙 更新时间:2023-11-03 19:14:17 24 4
gpt4 key购买 nike

这个问题与THIS QUESTION直接相关但我想因为主题不同,我会为当前问题提出一个新问题。我有一个 WCF 服务、一个服务和一个 GUI。 GUI 将一个 int 传递给 WCF,WCF 应该将其存放到 List<int> IntList 中;然后在服务中我想访问列表。问题是,当我尝试添加到 WCF 服务的列表时,我收到“检测到无法访问的代码”警告,并且当我调试它时,添加行被完全跳过。我怎样才能让这个列表“可达”?

下面是 WCF 代码、对 WCF 的 GUI 调用以及使用 List<> 的服务来自 WCF:

WCF:

[ServiceContract(Namespace = "http://CalcRAService")]
public interface ICalculator
{
[OperationContract]
int Add(int n1, int n2);
[OperationContract]
List<int> GetAllNumbers();
}

// Implement the ICalculator service contract in a service class.
public class CalculatorService : ICalculator
{
public List<int> m_myValues = new List<int>();

// Implement the ICalculator methods.
public int Add(int n1,int n2)
{
int result = n1 + n2;
return result;
m_myValues.Add(result);
}
public List<int> GetAllNumbers()
{
return m_myValues;
}
}

界面:

private void button1_Click(object sender, EventArgs e)
{
using (ChannelFactory<ICalculator> factory = new ChannelFactory<ICalculator>(new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/MyServiceAddress")))
{
ICalculator proxy = factory.CreateChannel();
int trouble = proxy.Add((int)NUD.Value,(int)NUD.Value);
}
}

服务:

protected override void OnStart(string[] args)
{
if (mHost != null)
{
mHost.Close();
}
mHost = new ServiceHost(typeof(CalculatorService), new Uri("net.pipe://localhost"));
mHost.AddServiceEndpoint(typeof(ICalculator), new NetNamedPipeBinding(), "MyServiceAddress");
mHost.Open();
using (ChannelFactory<ICalculator> factory = new ChannelFactory<ICalculator>(new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/MyServiceAddress")))
{
ICalculator proxy = factory.CreateChannel();
BigList.AddRange(proxy.GetAllNumbers());
}
}

最佳答案

所以你有:

int result = n1 + n2;
return result; // <-- Return statement
m_myValues.Add(result); // <-- This code can never be reached!

既然 m_myValues.Add() 不会以任何方式改变 result 的状态,为什么不翻转这些行:

int result = n1 + n2;
m_myValues.Add(result);
return result;

关于c# - 在 WCF 服务中时为 "unreachable code detected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18259193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com