私はオブジェクトを作成してカスタマイズできるサードパーティのSDKを使用しています。私のオブジェクトの中で、私が望むことを何でもすることができ、自分自身の設定を渡すことができますが、オブジェクト(参照)を渡すことはできません。私の場合、私は参照を得るために必要なコンテキストオブジェクトを持っています。 実行時にインスタンスへの参照を取得するにはどうすればよいですか? 私は問題をシミュレートしようと試みてきた下:これはかなりをやっもちろん実行時にインスタンスへの参照を取得するにはどうすればよいですか?
var myobject = new ClassThatNeedsAReferenceToMyContext();
myobject.theContext = myContext;
には、次のようになります:ClassThatNeedsAReferenceToMyContext
タイプを変更することなく、
using System;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
var runtime = new Runtime();
}
}
class Runtime
{
private MyContext myContext;
public Runtime()
{
myContext = new MyContext();
//cant pass my object in
var myobject = new ClassThatNeedsAReferenceToMyContext();
if(myobject.theContext == myContext)
{
Console.WriteLine("Yahoo");
}
}
}
class MyContext
{
}
class ClassThatNeedsAReferenceToMyContext
{
public ClassThatNeedsAReferenceToMyContext()
{
//do something here to get a reference to myContext
}
public MyContext theContext { get; private set; }
}
}
コンストラクタは任意の種類のパラメータを受け取ることができます。また、オブジェクトへの参照 – Steve
これは単なるシミュレーションです。実際の問題では、クラス "ClassThatNeedsAReferenceToMyContext"はサードパーティのライブラリの一部です。 – Noel
そのクラスを変更することはできませんか?その場合、実現可能な唯一の方法はプロパティを設定することです(ライブラリーの開発者が提供している場合) – Steve