У меня есть функция, которая в данный момент принимает переменную Type
. Эта функция вставляет его в список, и в этом случае, в конечном итоге, будет создан класс этого типа.Возможно создать новый экземпляр типа без отражения?
Прямо сейчас я делаю это с
object o=MyType.GetConstructors()[0].Invoke(new object[0]);
который довольно Hacky, а также не будет работать в среде доверия из-за отражения (я думаю). Есть ли лучший способ сделать это без отражения?
Тип определяется таким образом как часть функции. Мне нужен класс, который будет создан «лениво», потому что он не может быть создан в приложении, если он не нужен. Я использую его, например, как
AddToList(typeof(Whatever));
Примечание. Я открыт для предложений по изменению вызова функции. Мне просто нужен объект, который создается лениво и для хранения типа (или, тем не менее, для создания объекта типа) в списке.
Я рассматривал лямбда, но я не уверен, что они будут работать здесь.
«Отражение» в значительной степени определяется как то, что вы пытаетесь сделать ... почему вы пытаетесь это сделать? Откуда берется «Тип»? –
@ Karl see my edit – Earlz
Вы создаете фабрику объектов? Если это так, вас может заинтересовать http://blogs.lessthandot.com/index.php/DesktopDev/MSTech/structuremap-is-way-cool – Rob