WCF 部分 class 中的超级接口

Super-interface in a partial class in WCF

我正在创建一个具有多个接口的 WCF 服务,比如 "IService" 作为我的主要接口(服务合同)和基于我的模块添加的其他接口。 像 - "IStudent"、"IClass"、"ITeacher" 等

所以我的计划是这样的-

[ServiceContract]
public interface IKCCWebService : IStudent, IClass, ITeacher
{}

并像这样使用我的服务 -

public partial class MyService : IKCCWebService
{} 

public partial class MyService : IStudent
{
   // Student interface implemented
} 

public partial class MyService : IClass
{
   // Class interface implemented
} 

等等。如果我这样做,我会收到错误 - "MyService does not implement interface member "IKCCWebService"".

我不想一次性实现所有接口,所以我采用了这种方法。

如果您有任何建议,请告诉我。

我认为您误解了部分 classes 的用途。

部分 classes 不允许您实现 class 或接口的 "part"。 Partial classes 只是一种允许 class 的部分定义在不同 地方 的方法。当编译器构建您的项目时,它会找到 class 的所有部分定义并将它们混合在一起成为完整的定义。

例如,这段代码:

partial class MyClass: BaseClass
{
}

sealed partial class MyClass: IFirstInterface
{
    public void FirstMethod(){ }
} 

public partial class MyClass: ISecondInterface
{
    public void SecondMethod(){ }
} 

真正翻译成这个:

public sealed class MyClass : BaseClass, IFirstInterface, ISecondInterface
{
    public void FirstMethod(){ }
    public void SecondMethod(){ }
}

所有成员、修饰符、实现的接口和继承的 classes 都会在构建时应用于 class。

典型的用法是 class 的一部分是动态生成的(例如,由工具或设计者),而 class 的一部分是手动生成的。 class 可以声明为部分文件并拆分为两个文件 - 一个您不接触(因为该工具可以随时重新生成它)和一个该工具不接触的文件,您将所有文件放在其中代码。


在您的情况下,声明多个部分 classes 没有任何意义。由于您的部分定义之一包括 MyService : IKCCWebService,因此需要 MyService class 来定义 所有 IKCCWebService 定义的成员。

如果您不想一次实现所有接口的逻辑,则不必这样做。只需用一行定义所需的接口方法:throw new NotImplementedExeption();编译器不关心方法做什么,只要定义了方法即可。