C# 在部分类中引用方法时编译失败

问题描述 投票:0回答:1

我目前在构建 C# 项目时遇到 CS1061 错误。此错误仅发生在我的代码中非常特定的位置。

错误 CS1061 描述:

'type' does not contain a definition for 'member' and no extension method 'name' accepting a first argument of type 'type' could be found (are you missing a using directive or an assembly reference?).

我有两个文件,一个

main.cs
和一个
partial.cs
partial.cs
main.cs
的部分类。
main.cs
内部包含两个类,
main
类和
helper
类。

helper
类实例化
main
类并调用
main
文件中定义的
partial.cs
类的方法时,会引发错误。

根据我的理解,这不应该是一个问题。

main
类分为两个文件,但在编译期间,部分类被合并。

这个问题看起来很相似,但他的解决方案对我不起作用。这两个文件都包含在项目中。 单独文件中的 ASP.NET C# 部分类不起作用 CS1061

有什么想法吗?

main.cs

namespace Price.WS
{
    public partial class Main : BaseWebService
    {
        public Main()
        {
            //CODEGEN: This call is required by the ASP.NET Web Services Designer
            InitializeComponent();
        }

        private DataSet _TestMethod()
        {
            //Stuff     
        }          
    }

    public class Helper: IExchangeable
    {
        public void Test()
        {             
            using (Main main = new Main())
            {
                main.TestMethod();  //This is where the error gets thrown. The compiler doesn't see TestMethod() as a method of main
            }
        }
    } 
}

部分.cs:

namespace Price.WS
{
    public partial class Main : BaseWebService
    {        
        [WebMethod()]
        public DataSet TestMethod()
        {
            //Stuff
            return _TestMethod();   
            //Stuff
        }          
    }      
}

编辑:它似乎并不特定于辅助类中调用的方法。在单独的类中构建期间会引发另一个错误。该类的设置方式与上一个类相同,只是它没有额外的帮助程序类。当分部类的主要部分调用另一个文件中分部类中声明的方法时,此方法会失败。

c# partial-classes
1个回答
0
投票

我发现了这个问题。该错误实际上是在另一个具有指向此类的链接的项目中。具有链接的项目不包含部分类的链接,因此这些方法不可用。

© www.soinside.com 2019 - 2024. All rights reserved.