仲間のメンバーに挨拶します。問題の状況は次のとおりです。
public abstract class BaseClass
{
protected BaseClass()
{
// some logic here
}
protected BaseClass(Object parameter) : this()
{
// some more logic
}
}
public class Descendant : BaseClass
{
// no constructors
}
Descendant クラスでActivator.CreateInstanceを呼び出そうとしていますが、コンストラクターが見つかりません。
Descentant クラスで明示的に定義する必要がありますか?
私が使用したバインディングは次のとおりです。BindingFlags.Instance | BindingFlags.NonPublic
注 1 : 何らかの影響があれば、実際には AppDomain.CreateInstanceAndUnwrap() を呼び出しています。
domain.CreateInstanceAndUnwrap(path, typeName, false, BindingFlags.Instance |
BindingFlags.NonPublic, null, new[] { parameter }, null, null);
注 2 : Descendant クラスで保護されたコンストラクターを明示的に定義すると機能しますが、可能であればこれを避けたいと思います。