.Net 如何为分部类创建构造函数?

Eri*_*ert 3 .net c# asp.net constructor partial-classes

我有一个带有构造函数的分部类,但是构造函数抛出错误,因为“已经声明了具有相同签名的成员”(另一个分部类中存在同名的构造函数)。当名称已被使用时,如何为分部类创建构造函数?

public partial class DigitalArchivesAssetsDataContext
{
    public DigitalArchivesAssetsDataContext()
        : base(System.Configuration.ConfigurationManager.ConnectionStrings["digitalArchivesAssets"].ConnectionString, mappingSource)
    {
        OnCreated();
    }
}
Run Code Online (Sandbox Code Playgroud)

Bra*_*ner 5

你不能。编译器本质上是在构建项目时将所有分部类的文本合并为一个类。每个类不能有多个具有相同名称和签名的方法(包括构造函数)。

一种选择是为构造函数使用不同的签名,或者修改您的架构以不需要构造函数。例如,您可以使用现有的构造函数并拥有某种Initialize方法来运行来自其他构造函数的代码。

您也可以使用“部分方法”。这些方法标记为partial您可以从现有构造函数“如果存在”调用。它们被设计为来自代码生成器的部分类的扩展点,但您也可以使用它们。有关更多信息,请参阅MSDN