次のようなコードがあります。
public static T CreateSomething<T>(SomeType a) where T : SomeMicrosoftBaseClass, new()
{
var newElement = new T { SomeProperty = a};
DoStuff();
return newElement;
}
そして今、コードを変更して、SomeMicrosoftBaseClass のコンストラクターにブール値の引数を渡すことができるようにする必要があります。これは、構築時にのみ設定できます。
「new()」制約には public パラメーターのないコンストラクターが必要であり、インターフェイスを使用したり、SomeMicrosoftBaseClass を変更したりできなかったため、次のようにリフレクションを使用しています。
var newElement = (T) (typeof (T).GetConstructor(new Type[] { typeof(SomeType) }).Invoke(new object[] { a }));
誰かがこれを行うためのよりエレガントな方法を提案できますか?