アンマネージコードの周りにC#でラッパーを記述しています。アンマネージコードはセッションを作成し、セッションは2つのメソッド呼び出しに基づいて動的または静的のいずれかになります。アンマネージコードのラッパーのクラスデザイン
ダイナミックとスタティックには異なるタイプが含まれているため、ここではインターフェイスを使用できません。
CreateDynamicが呼び出された場合、それは動的なものです それ以外は静的です。
私の初期のクラスデザインはこのように見えます。
public class Session
{
public void CreateDynamic()
{
dynamic = new Dynamic();
}
public void CreateStatic()
{
stat = new Static();
}
public Dynamic dynamic;
public Static stat;
}
私がセッションを作成すると、オブジェクトが作成されたセッションに適用されるメソッドとプロパティが含まれている必要があります。インスタンス化されていないサブセッションにアクセスすると、null参照例外が発生します。この問題を回避する方法はありますか?
これらのフィールドをプライベート*に設定してください。 *抽象基本クラス*を考えてください。 –
@ HansPassant-詳しく説明できますか? – sundar