У меня есть этот базовый класс, который создает новое соединение с SQL Server и выполняет некоторые служебные методы на C #, я хочу унаследовать его от F #. В настоящее время я не могу получить доступ к защищенным полям в классе C # из F #, хотя это будет работать в C #.
C # абстрактный класс
public abstract class SQL
{
protected readonly SqlConnectionStringBuilder bld;
protected readonly SqlCommand cmd;
protected readonly SqlConnection conn;
protected readonly string connstring;
protected string userid;
public SQL(string server, string db)
{
bld = new SqlConnectionStringBuilder();
bld.DataSource = server;
bld.InitialCatalog = db;
bld.IntegratedSecurity = true;
connstring = bld.ConnectionString;
conn = new SqlConnection(connstring);
cmd = new SqlCommand();
GetUserID();
//Other utility methods here
}
Код F # для наследования
type Transfer ( server : string ) ( db : string ) =
inherit SQL(server, db)
let accessAbstractConn = conn. //Can't access protected field????
Я что-то здесь пропустил? Я пробовал использовать псевдоним для поля базового класса, например. this.conn, который тоже не работает.
Спасибо Ричард