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

时间:2013-10-21 22:30:20

标签: c# compiler-construction partial-classes

我在构建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.cspartial.cspartial.csmain.cs的部分类。 main.cs包含两个类,main类和helper类。

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

根据我的理解,这应该不是问题。 main类分为两个文件,但在编译期间,组合了部分类。

这个问题似乎非常相似,但他的决议对我不起作用。这两个文件都包含在项目中。 ASP.NET C# partial class in separate files not working 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
            }
        }
    } 
}

Partial.cs:

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

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

1 个答案:

答案 0 :(得分:0)

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