gpt4 book ai didi

c# - 覆盖抽象类的属性?

转载 作者:行者123 更新时间:2023-11-30 13:51:02 24 4
gpt4 key购买 nike

背景:我将 System.Data.Common.DBConnect 类用于一组连接到不同类型数据源(如 CSV、AD、SharePoint、SQL、Excel、SQL 等)的类。有一个接口(interface)定义了所有数据源类型的契约。

我希望使用 DBConnection 对象的 connectionString 属性在基于文件的源上存储文件路径,以传递给基于文件的数据源的 GetData(DBConnection conn) 方法。这不起作用,因为在为 ConnectionStribg 属性分配字符串时会发生一些验证。我的问题:如何创建我自己的派生自 DBConnection 类(它是一个抽象类)的类,它只添加一个名为 ParameterString 的属性?

tldr;我想从 System.Data.Common.DBConnect 继承并添加我自己的字符串属性。怎么办?

编辑

界面如下:

public interface IDataImport
{
DbConnection CreateDbConnection(params string[] connectionString);

DataSet GetResults(DbConnection conn, params string[] strQuery);

DataTable GetAvailableTables(DbConnection conn);

DataTable GetAvailableFields(DbConnection conn, string tableName);

}

最佳答案

您可以从 DBConnection 继承,但问题是您需要实现所有继承的抽象成员(其中有 22 个):

public class MyConnect : DBConnection
{
public string FilePaths{ get; set; }

//Still need to implement all of the
}

我假设您确实想利用内置的 ADO 类来处理 DBConnection 的实现,所以这不是一个好的选择。

也许您只需要单独跟踪信息。信息必须成为连接类的一部分是否有特殊原因?

你可以按照以下方式做一些事情:

public class MyConnectionInfo
{
public DBConnection Connection { get; set; }

public string FileNames { get; set; }
}

这会将信息放在一起,但不会使 DBConnection 类的使用复杂化。

关于c# - 覆盖抽象类的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5220605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com