标签: asp.net-boilerplate

无法创建组件,因为它具有要满足的依赖性

我正在学习DDD,n-Tier,Repositoriess等.有人把我指向ASP.NET Boilerplate,我决定用它开始一个测试项目.我从来没有处理依赖注入,所以这对我来说都是新的,但它依赖于它使用ius Castle Windsor的DI依赖.现在,我创建了一个模型,并从这个模型中创建了一个接口.我还添加了一个服务.每当我启动应用程序时它会给我这个错误:

Can't create component 'TestApp.Services.MemberInfo.MemberAppService'
as it has dependencies to be satisfied.

'TestApp.Services.MemberInfo.MemberAppService' is waiting for the following dependencies:
- Service 'TestApp.Repositories.IMemberInfoRepository' which was not registered.
Run Code Online (Sandbox Code Playgroud)

我知道你必须注册服务和类似的东西,但阅读它在这里说的ABPs文档,http://www.aspnetboilerplate.com/Pages/Documents/Dependency-Injection#DocAbpInfrastructure,如果你添加App,它们会被自动注册到班级的名字.基本上,这是我的代码:

IMemberInfoRepository

    public interface IMemberInfoRepository : IRepository<MemberInfo, Guid>
{

}
Run Code Online (Sandbox Code Playgroud)

MemberAppService

 public class MemberAppService : IMemberAppService
{
    private readonly Repositories.IMemberInfoRepository _memberInfoRepository;

    public MemberAppService(Repositories.IMemberInfoRepository memberInfoRepository)
    {
        _memberInfoRepository = memberInfoRepository;
    }

    public void Create(MemberInfoDto input)
    {
      _memberInfoRepository.Insert(AutoMapper.Mapper.Map<m.MemberInfo>(input));
    }
Run Code Online (Sandbox Code Playgroud)

IMemberAppService

public interface IMemberAppService :IApplicationService
{
    void Create(MemberInfoDto input);
}
Run Code Online (Sandbox Code Playgroud)

所以,我在这里.卡住.我读了一些Castle Windsor官方文档,但因为这是我的第一个牛仔竞技表演,所以我坚持要做什么.任何其他事情将不胜感激.

c# asp.net-mvc castle-windsor asp.net-boilerplate

8
推荐指数
1
解决办法
8893
查看次数

Asp.net MVC样板依赖注入不起作用

我正在玩Asp.Net MVC 6样板项目.我正在尝试为我的一个服务配置依赖注入.看起来内置的IoC容器忽略了我的绑定.

Startup.cs

public void ConfigureServices(IServiceCollection services){
    /*boilerplate's default bindings*/
    services.AddTransient<IDummy, Dummy>(p => new Dummy()
        {
            name = "from injection"
        });
}
Run Code Online (Sandbox Code Playgroud)

HomeController.cs

public IActionResult Index(IDummy dummy){
    var test = dummy.name;
    return this.View(HomeControllerAction.Index);
}
Run Code Online (Sandbox Code Playgroud)

例外:

ArgumentException:类型'Presentation.WebUI.Controllers.IDummy'没有默认构造函数

你能告诉我我做错了什么吗?

c# asp.net asp.net-core-mvc asp.net-boilerplate asp.net-core-1.0

6
推荐指数
1
解决办法
1311
查看次数

在 ASP.NET Boilerplate .NET Core v3 中设置和获取会话变量

我正在尝试在某个组件中设置变量值(从 angular 选择组件中选择的选项)以在另一个组件中使用它,我不想通过 javascript 使用 window.sessionStorage()我想在.NET core 但问题是我可以设置变量值,但是当我想获取它时,它没有返回值。

以下是我的应用程序服务代码

 public class MainProjectAppService : AsyncCrudAppService<MainProject, MainProjectDto,int,PagedAndSortedResultRequestDto,MainProjectDto>
    {



         private readonly IHttpContextAccessor _httpContextAccessor;


        public MainProjectAppService(IRepository<MainProject, int> repository, IHttpContextAccessor httpContextAccessor) : base(repository)
        {

            _httpContextAccessor = httpContextAccessor;
        }

        public void setVaraibleValurinSesseion(int ID)
        {
            _httpContextAccessor.HttpContext.Session.SetInt32("GID", ID);
        }

        public int getVaraibleValurFromSesseion()
        {
            return (int)_httpContextAccessor.HttpContext.Session.GetInt32("GID");

        }
Run Code Online (Sandbox Code Playgroud)

这是我更新的 Startup.cs 类代码:


using System;
using System.Linq;
using System.Reflection;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Castle.Facilities.Logging;
using Abp.AspNetCore;
using Abp.AspNetCore.Mvc.Antiforgery;
using Abp.Castle.Logging.Log4Net;
using Abp.Extensions;
using …
Run Code Online (Sandbox Code Playgroud)

session-variables asp.net-boilerplate asp.net-core aspnetboilerplate angular

6
推荐指数
1
解决办法
2042
查看次数

ASP NET Boilerplate&gt;使用swagger代码生成工具(nswag)生成C#swagger客户端不起作用

我尝试为使用ASP Net Boilerplate创建的API和API生成c#代码,但响应未正确反序列化。

经调查,似乎使用名为“ AjaxResponse”的类包装了json响应。但是,swagger.json在方法响应中不包括此类型。

有谁知道如何构建一个解释打包结果的C#Swagger客户端?

c# asp.net-boilerplate swagger-codegen nswag

4
推荐指数
1
解决办法
528
查看次数

Asp.Net Boilerplate,, 如何获取当前登录用户?

我想获取当前登录的用户数据,?? 我必须将当前用户 ID 发送到数据库中的表如何执行此操作?

c# ef-code-first asp.net-boilerplate aspnetboilerplate

4
推荐指数
3
解决办法
7923
查看次数

无法跟踪实体类型“产品”的实例,因为已经跟踪了另一个具有相同键值的实例

我使用以下代码进行了测试以更新Product

var existing = await _productRepository.FirstOrDefaultAsync(c => c.Id == input.Id);
if (existing == null)
    throw new UserFriendlyException(L("ProductNotExist"));
var updatedEntity = ObjectMapper.Map<Product>(input);
var entity = await _productRepository.UpdateAsync(updatedEntity);
Run Code Online (Sandbox Code Playgroud)

但这会引发异常:

Mvc.ExceptionHandling.AbpExceptionFilter-无法跟踪实体类型'Product'的实例,因为已经跟踪了另一个具有相同键值的{'Id'}实例。附加现有实体时,请确保仅附加一个具有给定键值的实体实例。

这是由查询引起的existing。有什么解决办法吗?

c# entity-framework change-tracking asp.net-boilerplate aspnetboilerplate

4
推荐指数
2
解决办法
1万
查看次数

字符串值不正确:第 1 行“DisplayName”列的“\xD8\xA7\xD9\x84\xD8\xB9...”

运行服务器端代码时出现以下异常。

\n\n
\n
FATAL 2018-04-25 14:41:59,757 [1    ] Abp.AbpBootstrapper             \n- Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. --->\nMySql.Data.MySqlClient.MySqlException: Incorrect string value:\n\'\\xD8\\xA7\\xD9\\x84\\xD8\\xB9...\' for column \'DisplayName\' at row 1 --->\nMySql.Data.MySqlClient.MySqlException: Incorrect string value:\n\'\\xD8\\xA7\\xD9\\x84\\xD8\\xB9...\' for column \'DisplayName\' at row 1    at\nSystem.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    at\nSystem.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task\ntask)    at\nSystem.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult()\nat\nMySqlConMyCompanytor.Core.ResultSet.<ReadResultSetHeaderAsync>d__1.MoveNext()\nin\nC:\\projects\\mysqlconMyCompanytor\\src\\MySqlConMyCompanytor\\Core\\ResultSet.cs:line\n43    --- End of inner exception stack trace ---    at\nMySql.Data.MySqlClient.MySqlDataReader.ActivateResultSet(ResultSet\nresultSet) in\nC:\\projects\\mysqlconMyCompanytor\\src\\MySqlConMyCompanytor\\MySql.Data.MySqlClient\\MySqlDataReader.cs:line\n92    at\nMySql.Data.MySqlClient.MySqlDataReader.<ReadFirstResultSetAsync>d__65.MoveNext()\nin\nC:\\projects\\mysqlconMyCompanytor\\src\\MySqlConMyCompanytor\\MySql.Data.MySqlClient\\MySqlDataReader.cs:line\n297\n--- End of stack trace from previous location where exception was thrown ---    at\nSystem.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()    at\nSystem.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task\ntask)    at\nMySql.Data.MySqlClient.MySqlDataReader.<CreateAsync>d__64.MoveNext()\nin\nC:\\projects\\mysqlconMyCompanytor\\src\\MySqlConMyCompanytor\\MySql.Data.MySqlClient\\MySqlDataReader.cs:line\n287\n--- End of stack trace from previous location …
Run Code Online (Sandbox Code Playgroud)

c# mysql collation asp.net-boilerplate aspnetboilerplate

3
推荐指数
1
解决办法
6391
查看次数

ASP.NET Boilerplate令牌到期

我正在使用ASP.NET Boilerplate。我在Angular中有一个应用程序(ABP外部),我想使用我的API。

为此,我通过/ api / TokenAuth / Authenticate获得了一个访问令牌,然后在对我的API的调用中使用了该令牌。

问题是令牌在1天后过期,我希望用户会话能够持续更长的时间,而无需用户每1天登录一次。

知道我该如何实现吗?我想延长令牌的过期时间,即使我已经知道它是不安全的。

谢谢您的帮助!

asp.net authentication configuration asp.net-boilerplate aspnetboilerplate

3
推荐指数
1
解决办法
1390
查看次数

覆盖时钟。ABP 现在时间

如何覆盖 DateTime 值Abp.Timing.Clock?这些项目都使用 NuGet 包。我无法更改或编辑 NuGet 并发布我自己的个人版本,nuget.dll因为整个项目将给出“错误,缺少程序集引用”。那么我究竟如何在 UTC 和 Local 之间来回呢?

官方链接说您可以Clock.Now在整个项目的全球范围内更改所有内容。但永远不要指定如何在选择的基础上进行更改。

这通常在应用程序开始时完成(在 Web 应用程序的 Application_Start 中完成)。

也:

当使用 EntityFramework 或 NHibernate 模块时,ABP 会根据当前时钟提供程序自动规范从数据库接收的日期时间。

但是,如果我想从数据库中提取一个存储为UTC的值,而其他值是本地值,反之亦然,该怎么办?

就像聊天演示使用的那样Clock.Now,但它没有解释任何机制。如果我本地早上 7 点在聊天中发送一条消息,那么对于世界另一端阅读该消息的人来说,该消息是否会显示为上午 7 点?

创作者说:

...如果您想支持具有多个时区的用户,您需要为用户存储时区设置。因此,您可以使用此设置。

但整个对话都是关于 JavaScript,而不是关于使用 UTC/本地值存储和读取数据库。

我最好删除所有实例Clock.Now并使用DateTime.Now/UTC它吗?正在使用的 NuGet 程序集的其余部分怎么样Clock.Now

Clock 是用于处理 DateTime 值的主类。它定义了以下静态属性和方法...

DateTime.Now因此,我们不使用 ,而是使用Clock.Now,它对其进行了抽象......

真的想要更多关于这方面的资源和信息。这两段文字并不足以支撑我的担忧。我需要更多关于 EntityFramework/Database 的信息,而不是关于JavaScript 的信息


编辑回应@aaron的答案。我不想尝试将其塞入评论文本中。

public ChatMessage(
        UserIdentifier user, …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework entity-framework-core asp.net-boilerplate aspnetboilerplate

3
推荐指数
1
解决办法
1691
查看次数

从Application Service检查用户角色

我正在实现将统计数据发送到主页(仪表板应用程序页面)的应用程序服务.

根据用户角色(服务需要身份验证),我将使用基于角色的WhereIf()从数据库中提取/聚合数据

特别是如果用户是管理员,我将不会使用WhereIf()应用数据提取过滤器

为此,我在服务构造函数中注入了IAbpSession以便能够提供用户ID,但是如果用户是管理员,我怎么能这样做?

asp.net-boilerplate aspnetboilerplate

2
推荐指数
1
解决办法
1752
查看次数