AspNet样板 - AspNetZero - 依赖注入

时间:2018-01-08 19:46:20

标签: javascript c# .net dependency-injection aspnetboilerplate

我有以下类,我正在尝试将依赖注入实现为在ASP.NET Zero中调用WCF服务。

接口IUserProxyService使用CreateUser方法实现IApplicationService。

类UserProxyService使用IUserRepository的构造注入来嵌入IUserProxyService并具有CreateUser方法。

接口IUserRepository指定实现CreateUser方法。

类UserRespository implments带有没有parmaters的公共构造函数的IUserRepository会启动对WCF服务客户端的调用以及另一个用于模拟的构造函数。该类包含对WCF服务的实际调用。

通过使用IApplicationService,根据文档,我的类由CastleWindsor在ASPNetZero中自动注册。 现在,在Authorisation.User(Application project)中的UserAppService类中。我将IUserProxyService作为附加参数添加到我的构造函数中。这样我就可以使用该对象进行createuser调用。

但是,执行此操作后,当我在Web应用程序上加载“用户”部分时,我收到了一个javascript错误:

delta = 200;
oldTime = 0;

function loop(currentTime) {
  if(oldTime === 0) {
    oldTime = currentTime;
  }

  if((currentTime - oldTime) >= delta){
    noise(ctx);  
    oldTime = currentTime;
  }
  requestAnimationFrame(loop);
};

requestAnimationFrame(loop);

在Header.js中:

 _Header.js:74 Uncaught TypeError: Cannot read property 'app' of undefined
 at HTMLDocument.<anonymous> (_Header.js:74)
 at i (jquery.min.js:2)
 at Object.fireWith [as resolveWith] (jquery.min.js:2)
 at Function.ready (jquery.min.js:2)
 at HTMLDocument.K (jquery.min.js:2)

我做错了什么?你能指导我正确的方向吗?  回复

1 个答案:

答案 0 :(得分:0)

我有同样的问题。检查此项可能会纠正此错误。

1- AssetApplicationService必须由 IApplicationService 实现。

 public interface IAssetApplicationService  : IApplicationService
 {   

 }
public class AssetApplicationService : IAssetApplicationService  
{   

}

2-检查您的模块是否正确加载,并在其他类似的模块中添加正确的依赖项

    using System.Reflection;
    using System.Web.Http;
    using Abp.Application.Services;
    using Abp.Configuration.Startup;
    using Abp.Modules;
    using Abp.WebApi;

    namespace YourApp.Api
    {
        [DependsOn(typeof(AbpWebApiModule), 
        typeof(YourAppCommonModule), 
        typeof(YourAppApplicationModule))]
        public class YourAppWebApiModule : AbpModule
        {
            public override void Initialize()
            {
                IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());

                Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
                    .ForAll<IApplicationService>(typeof(YourAppCommonModule).Assembly, "app")
                    .Build();

                Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
                    .ForAll<IApplicationService>(typeof(YourAppApplicationModule).Assembly, "app")
                    .Build();

                Configuration.Modules.AbpWebApi().HttpConfiguration.Filters.Add(new HostAuthenticationFilter("Bearer"));
            }
        }
    }