如何实现WCF的静态接口成员?

时间:2014-04-25 19:23:36

标签: c# wcf

我有天真的贝叶斯分类器C#控制台应用程序,其中包含一些静态方法。而且,我有一个Web应用程序。然后,我需要将我的控制台应用程序转换为WCF服务应用程序,以将其与我的Web应用程序一起使用。但是,问题是我无法实现静态接口成员。为什么?如何为服务应用程序实现静态接口成员?

IService1.cs:

public interface IService1
    {
        [OperationContract]
        void classify(string[] param1);
    }

Service1.cs:

static void classify(string[] param1)
   {
        //Some code
   }

错误:

' NaiveBayesService.NaiveBayesProgram'没有实现接口成员' NaiveBayesService.IService1.classify(string [])'。 ' NaiveBayesService.NaiveBayesProgram.classify(串[])'无法实现接口成员,因为它是静态的。

1 个答案:

答案 0 :(得分:4)

你做不到。想想接口代表什么:类的给定实例包含接口中定义的方法,属性,索引器等的契约。

在静态类上实现接口的目的是什么?你永远不会有静态类的实例。

您可以在服务中的非静态类上实现接口,并在启动服务时将其实例化。