public void Initialize <TInput>(Action <MessageInitializer <TInput> > initializer, Action <TInput> callback) { var initialize = new DynamicMessageInitializer <T>(_properties); initializer((MessageInitializer <TInput>)initialize); callback((TInput)initialize.GetMessage()); }