C# Windows通信基础空引用错误
我试图在我的应用程序中使用Windows Communication Foundation(WCF)进行测试,但得到了一个空对象。我是新的使用WCF,所以任何帮助将不胜感激 据我所知,每个主机都有一个服务类型(类)。我有几个接口和类要测试。我的目标是使一个主类具有其他主类的实例,这样我就不必运行多个主机。下面是我的一些代码 主人- 接口-C# Windows通信基础空引用错误,c#,wcf,interface,C#,Wcf,Interface,我试图在我的应用程序中使用Windows Communication Foundation(WCF)进行测试,但得到了一个空对象。我是新的使用WCF,所以任何帮助将不胜感激 据我所知,每个主机都有一个服务类型(类)。我有几个接口和类要测试。我的目标是使一个主类具有其他主类的实例,这样我就不必运行多个主机。下面是我的一些代码 主人- 接口- [ServiceContract] public interface IMyFun { [OperationContract] string
[ServiceContract]
public interface IMyFun {
[OperationContract]
string Echo(string msg);
IDataSources DataSources { [OperationContract]get; [OperationContract]set; }
}
[ServiceContract]
public interface IDataSources {
[OperationContract]
void Add(DataSource dataSource);
[OperationContract]
void Remove(DataSource dataSource);
}
类-我试图创建一个基类,这样就不必运行多个主机
public class MyFun : IMyFun {
public DataSources _dataSources;
public MyFun () {
_dataSources = new DataSources();
}
public string Echo(string msg) {
return msg;
}
public IDataSources DataSources { get { return _dataSources; } set {_dataSources = (DataSources)value;} }
}
public class DataSources : IDataSources{
....//Several methods and properties
}
试验-
public void MyTest() {
EndpointAddress address = new EndpointAddress("http://localhost:8090/MyFun");
BasicHttpBinding binding = new BasicHttpBinding();
ChannelFactory<IMyFun> factory = new ChannelFactory<IMyFun>(binding, address);
IMyFun channel = factory.CreateChannel();
Assert.AreEqual("Test", channel.Echo("Test"));
IDataSources dataSources = channel.DataSources;
dataSources.Add(newDataSource);
}
数据源为空。这就是原因
dataSources.Add(newDataSource);
由于空异常错误而失败。您可能需要执行类似于
频道的操作。获取\u数据源。Intellisense肯定会告诉您,只需键入频道。
并查看可用成员的显示内容。将属性的访问器作为服务操作公开是非常罕见的。
IDataSources dataSources = channel.DataSources;
dataSources.Add(newDataSource);