c# 命名空间已经包含继承类的定义,那么如何添加构造函数

发布于 2024-12-06 13:19:09 字数 1430 浏览 1 评论 0原文

我正在小心翼翼地尝试 WCF,尝试遵循教程并将我的 ASMX 项目转换为新的 WCF 项目,并且我偶然发现了有关 WCF 中构造函数编码的谜团。

我的 ASMX Web 服务允许我有一个构造函数(请参阅:相同的名称,无返回值):

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();
        }
    }

I am carefully treading into WCF attempting to follow tutorials and convert my ASMX project to a new WCF project and I've stumbled upon a mystery about coding of my constructor in WCF.

My ASMX webservice allowed me to have a constructor (see: same name, no return value):

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();
        }
    }

My attempt to convert this to a WCF service app gives this compiler complaint:

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

Here is the WCF code (beginning snippet):

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();
        }
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

圈圈圆圆圈圈 2024-12-13 13:19:09

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

This isn't related to the existence of the constructor. I am fairly sure this is a copy/paste error- perform a search for the word "FileService" in any files in your application and you will find another class or a namespace declaration with that name (in the same namespace).

浅语花开 2024-12-13 13:19:09

您可以做的一些事情:

  • 右键单击> >查找有关 FileService 的参考资料。
  • 尝试完整搜索 (ctrl+f) 并搜索 FileService。
  • 检查第二个构造函数的所有分部类。
  • 尝试干净的解决方案,然后重建解决方案,看看这是否使
    任何差异。
  • ...

Some things you could do:

  • do right mouse click > Find references on FileService.
  • Try a full search (ctrl+f) and search for FileService.
  • Check any partial classes for a second constructor.
  • Try clean solution and then rebuild the solution, see if this makes
    any difference.
  • ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文