我正在学习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官方文档,但因为这是我的第一个牛仔竞技表演,所以我坚持要做什么.任何其他事情将不胜感激.
我正在玩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
我正在尝试在某个组件中设置变量值(从 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)
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
我尝试为使用ASP Net Boilerplate创建的API和API生成c#代码,但响应未正确反序列化。
经调查,似乎使用名为“ AjaxResponse”的类包装了json响应。但是,swagger.json在方法响应中不包括此类型。
有谁知道如何构建一个解释打包结果的C#Swagger客户端?
我想获取当前登录的用户数据,?? 我必须将当前用户 ID 发送到数据库中的表如何执行此操作?
我使用以下代码进行了测试以更新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
运行服务器端代码时出现以下异常。
\n\n\nRun Code Online (Sandbox Code Playgroud)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 …
我正在使用ASP.NET Boilerplate。我在Angular中有一个应用程序(ABP外部),我想使用我的API。
为此,我通过/ api / TokenAuth / Authenticate获得了一个访问令牌,然后在对我的API的调用中使用了该令牌。
问题是令牌在1天后过期,我希望用户会话能够持续更长的时间,而无需用户每1天登录一次。
知道我该如何实现吗?我想延长令牌的过期时间,即使我已经知道它是不安全的。
谢谢您的帮助!
asp.net authentication configuration asp.net-boilerplate aspnetboilerplate
如何覆盖 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
我正在实现将统计数据发送到主页(仪表板应用程序页面)的应用程序服务.
根据用户角色(服务需要身份验证),我将使用基于角色的WhereIf()从数据库中提取/聚合数据
特别是如果用户是管理员,我将不会使用WhereIf()应用数据提取过滤器
为此,我在服务构造函数中注入了IAbpSession以便能够提供用户ID,但是如果用户是管理员,我怎么能这样做?