c#Namespace已经包含了继承类的定义,因此如何添加构造函数

时间:2011-09-27 19:17:33

标签: c# wcf constructor asmx

我正在仔细研究WCF,试图按照教程并将我的ASMX项目转换为新的WCF项目,我偶然发现了一个关于在WCF中编码构造函数的谜。

我的ASMX webservice允许我有一个构造函数(参见:相同名称,没有返回值):

namespace sdkTrimFileServiceASMX
{
public class FileService : System.Web.Services.WebService
{
    Database db;
    string g_EventSource = "CBMI-TrimBroker";
    string g_EventLog = "Application";
    public FileService()
    {
        try
        {
            if (!EventLog.SourceExists(g_EventSource))
                EventLog.CreateEventSource(g_EventSource, g_EventLog);
        }
        catch (InvalidOperationException e)
        {
            e.ToString();
        }
    }

我尝试将此转换为WCF服务应用程序会产生此编译器投诉:

The namespace 'sdkTRIMFileServiceWCF' already contains a definition for 'FileService'   

这是WCF代码(开始代码段):

namespace sdkTRIMFileServiceWCF
{
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
public class FileService : IFileService                             // err msg points to this line
{
    Database db;
    string g_EventSource = "CBMI-TrimBroker";
    string g_EventLog = "Application";

    public FileService()
    {
        try
        {
            if (!EventLog.SourceExists(g_EventSource))
                EventLog.CreateEventSource(g_EventSource, g_EventLog);
        }
        catch (InvalidOperationException e)
        {
            e.ToString();
        }
    }

2 个答案:

答案 0 :(得分:4)

这与构造函数的存在无关。我很确定这是一个复制/粘贴错误 - 在应用程序的任何文件中搜索单词“FileService”,你会发现另一个具有该名称的类或名称空间声明(在同一名称空间中)。

答案 1 :(得分:2)

你可以做的一些事情:

  • 点击鼠标右键>在FileService上查找引用。
  • 尝试完整搜索(ctrl + f)并搜索FileService。
  • 检查第二个构造函数的任何部分类。
  • 尝试清洁解决方案,然后重建解决方案,看看是否这样做 任何差异。
  • ...