StructureMap Автоматическая регистрация для универсальных типов с помощью Сканирования

вы можете использовать ajax для передачи данных в событие нажатия кнопки на другой странице без перенаправления страницы

                  $(document).ready(function(){
                  $("#submit2").click(function(){
                  $.ajax( {
                    url: "<?php echo site_url();?>Home/get_regiter_data",
                    method: "POST",
                    data: $("#registrationForm").serialize(),
                    dataType: "text",
                    success: function(strMessage) {
                   // alert("Registration success");

                    window.location.href = '<?php echo site_url();?>Login'; 
                    //  $(".Next-btn-div").hide();

                    }
                });
             });
           });
9
задан Andrew Bullock 5 February 2009 в 17:23
поделиться

3 ответа

Есть более простой способ сделать это. Подробности см. В этом сообщении в блоге: Advanced StructureMap: соединение реализаций с открытыми универсальными типами

public class HandlerRegistry : Registry
{
    public HandlerRegistry()
    {
        Scan(cfg =>
        {
            cfg.TheCallingAssembly();
            cfg.IncludeNamespaceContainingType<FakeRepositories.FakeClientRepository>();
            cfg.ConnectImplementationsToTypesClosing(typeof(IRepository<>));
        });
    }
}

Такой способ позволяет избежать создания собственного ITypeScanner или соглашений.

14
ответ дан 4 December 2019 в 09:38
поделиться

Смотрите на это обсуждение от группы пользователей StructureMap: http://groups.google.com/group/structuremap-users/browse_thread/thread/649f5324c570347d

2
ответ дан 4 December 2019 в 09:38
поделиться

Спасибо Chris, это точно, в чем я нуждался. Для ясности вот то, что я сделал из Вашей ссылки:

Scan(x =>
{
    x.TheCallingAssembly();
        x.IncludeNamespaceContainingType<FakeRepositories.FakeClientRepository>();
    x.With<FakeRepositoryScanner>(); 
});


private class FakeRepositoryScanner : ITypeScanner
{
    public void Process(Type type, PluginGraph graph)
    {
        Type interfaceType = type.FindInterfaceThatCloses(typeof(IRepository<>));
        if (interfaceType != null)
        {
            graph.AddType(interfaceType, type);
        }
    }
} 
6
ответ дан 4 December 2019 в 09:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: