我创建了一个名为ServiceIRE的wcf服务。我通过右键单击解决方案资源管理器中的eproject并单击添加服务引用,为我的项目添加服务引用。我能够发现我创建的服务,并在指定命名空间ServiceReference1后单击“确定”。所有文件似乎都是正确生成的。
然后我转到代码隐藏并尝试使用“使用ServiceReference1;”添加使用语句。即使命名空间显然存在于同一个项目中,文件也无法识别这一点。
非常感谢任何帮助。
ServiceIRE.cs
namespace FakeIREServiceLibrary
{
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ServiceIRE : IServiceIRE
{
public string GetData()
{
Random rnd = new Random();
var randomNumber = rnd.Next(10);
Random rndID = new Random();
var randomNumberID = rnd.Next(10000);
Thread.Sleep(randomNumber*1000);
return string.Format("Thread # {0} returned in {1} nanoseconds", randomNumberID, rnd.Next());
}
}
IServiceIRE.cs
namespace FakeIREServiceLibrary
{
[ServiceContract]
public interface IServiceIRE
{
[OperationContract]
string GetData();
}
}
Page.aspx.cs
using ServiceReference1; //THIS IS NOT RECOGNIZED
提前谢谢你:)
答案 0 :(得分:2)
您项目的默认命名空间是什么?
我相信你必须做一些像“使用DefaultNamespaceForProject.ServiceReference1;”这样的事情。
右键单击项目可以找到默认命名空间。单击“属性”,然后转到“应用程序”选项卡。
答案 1 :(得分:1)
在显示该项目的所有文件后,通过查看“服务引用”中的Reference.cs文件,可以找到Visual Studio生成的服务客户端的命名空间。默认值为[Project namespace]。[指定名称空间]。
由于错误,它可能没有生成文件。这可能是你所看到的行为。
我还鼓励您NOT use Add Service Reference,而是use a ChannelFactory或build a reusable service client。