我正在仔细研究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();
}
}
答案 0 :(得分:4)
这与构造函数的存在无关。我很确定这是一个复制/粘贴错误 - 在应用程序的任何文件中搜索单词“FileService”,你会发现另一个具有该名称的类或名称空间声明(在同一名称空间中)。
答案 1 :(得分:2)
你可以做的一些事情: