我有以下类,我正在尝试将依赖注入实现为在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)
我做错了什么?你能指导我正确的方向吗? 回复
答案 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"));
}
}
}