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();
编译器不关心方法做什么,只要定义了方法即可。
我正在创建一个具有多个接口的 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();
编译器不关心方法做什么,只要定义了方法即可。