我正在尝试为windows Azure提供appFabric服务。我是实现和EchoService,我需要通过方式和IEchoContract接口实现,所有这些都在服务器端。 所以我继续这样做。
在IEchoContract.cs上
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace Service
{
[ServiceContract(Name = "EchoContract", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
interface IEchoContract
{
public interface IEchoContract
{
[OperationContract]
string Echo(string text);
}
}}
在EchoSErvice.cs上
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace Service
{
class EchoService
{
[ServiceBehavior(Name = "EchoService", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
public class EchoService : IEchoContract
{
public string Echo(string text)
{
Console.WriteLine("Echoing: {0}", text);
return text;
}
}}}
我有两个错误,我不是C#的专家 所以第一个:当我把EchoService:IEchoContract我得到了
'EchoService': member names cannot be the same as their enclosing type
第二,当我把公共接口IEchoContract
'IEchoContract' : interfaces declare types
所以请帮忙。 THX。
答案 0 :(得分:2)
您已经将接口和类声明了两次 - 只声明一次。
<强> IEchoContract.cs:强>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace Service
{
[ServiceContract(Name = "EchoContract", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
public interface IEchoContract
{
[OperationContract]
string Echo(string text);
}
}
<强> EchoService.cs:强>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace Service
{
[ServiceBehavior(Name = "EchoService", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
public class EchoService : IEchoContract
{
public string Echo(string text)
{
Console.WriteLine("Echoing: {0}", text);
return text;
}
}
}
答案 1 :(得分:1)
如果您在代码中看到在名为EchoService的类中有一个名为EchoSevice的类
namespace Service
{
class EchoService
{
[ServiceBehavior(Name = "EchoService", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
public class EchoService : IEchoContract
...
尝试删除外部类,因为它没有意义
namespace Service
{
[ServiceBehavior(Name = "EchoService", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
public class EchoService : IEchoContract
...
你也必须删除你的外部接口,因为它们也定义了两次(可能是你的类最终定义两次的原因)
答案 2 :(得分:0)
在EchoService.cs中,您无法调用内部类EchoService,因为您已经在其上面有一个类EchoService。您需要重命名其中一个。
答案 3 :(得分:0)
您在EchoService类中定义了一个EchoService类 - 这是不可能的。只需删除外部“类EchoService”,你应该没问题。