新しい SQL Server 接続を作成し、C# でいくつかのユーティリティ メソッドを実行するこの基本クラスがあり、F# で継承したいと考えています。現在、F# から C# クラスの保護されたフィールドにアクセスできませんが、これは 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 などの基本クラス フィールドのエイリアスを試みましたが、これも機能しません。
ありがとうリチャード