- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个具有以下架构的应用程序:
UI - 应用程序 - 领域 - 基础设施
我有一个需要使用自定义异常的应用程序层。我在哪里保存这些自定义异常?在基础设施层?问题是我的应用程序层没有引用基础设施层。
什么是正确的方法?
更新:
这是我在应用程序层抛出异常的代码:
public void InsertNewImage(ImagemDTO imagemDTO)
{
if (isValidContentType(imagemDTO.ImageStreamContentType))
{
string nameOfFile = String.Format("{0}{1}", Guid.NewGuid().ToString(), ContentTypeHelper.GetExtension(imagemDTO.ImageStreamContentType));
string path = String.Format("{0}{1}", ImageSettings.PathToSave, nameOfFile);
_fileService.SaveFile(imagemDTO.ImageStream, path);
Imagem imagem = new Imagem()
{
Titulo = imagemDTO.Titulo,
Descricao = imagemDTO.Descricao,
NomeArquivo = nameOfFile
};
_imagemRepository.Add(imagem);
_dbContext.SaveChanges();
} else
{
throw new WrongFileTypeException(String.Format("{0} is not allowed.", ContentTypeHelper.GetExtension(imagemDTO.ImageStreamContentType)));
}
}
public class ImageSettings : ConfigurationSection
{
/// <summary>
/// Caminha onde será salvo as imagens
/// </summary>
[ConfigurationProperty("pathToSave", IsRequired = true)]
public string PathToSave
{
get { return (string)this["pathToSave"]; }
set { this["pathToSave"] = value; }
}
/// <summary>
/// Extensões permitidas pra upload
/// </summary>
[ConfigurationProperty("allowedExtensions", IsRequired = true)]
public string AllowedExtensions
{
get { return (string)this["allowedExtensions"]; }
set { this["allowedExtensions"] = value; }
}
/// <summary>
/// Tamanho das imagens
/// </summary>
[ConfigurationProperty("imageSize")]
public ImageSizeCollection ImageSize
{
get
{
return (ImageSizeCollection)this["imageSize"];
}
}
}
最佳答案
这很可能与您的 previous question 有关.异常是由应用层定义并由基础设施实现的契约的一部分( DIP 和 Onion architecture )。它们应该在应用程序术语中定义并由应用程序处理,但从基础设施中抛出。例如,在您的应用程序代码中:
public class NotificationException : Exception {...}
public interface ICanNotifyUserOfSuccessfullRegistration {
/// <summary>
/// ...
/// </summary>
/// <exception cref="NotificationException"></exception>
void Notify();
}
public class SmsNotificator : ICanNotifyUserOfSuccessfullRegistration {
public void Notify() {
try {
// try sending SMS here
} catch(SmsRelatedException smsException) {
throw new NotificationException(
"Unable to send SMS notification.", smsException);
}
}
}
关于.net - 在 DDD 中,在哪里保存自定义异常(应用程序异常)?在基础设施层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7634787/
我有一个 asp .net 应用程序,它使用 infragistics Ultrachart 作为雷达图。现在图表如下图 是否可以在弧度和级别旁边添加文本,如下所示?有什么例子吗? 最佳答案 是的。有
如果我想创建一个相对较小的网站的移动友好版本,最好有一个子域重定向到一个带有单独标记和样式的全新 url,还是在代码中检测用户代理会更好并以编程方式更改为不同的移动友好样式表,或者他们是我忽略的更好的
我创建了一个可以正常打开的侧选项卡(基本上将 UltraGrid 变成了选项卡,而不是带有 UltraGrid 的表单),但是当固定侧选项卡时,它的大小会位于主窗体的后面。 如何设置固定标签布局以根据
我正在寻找 WPF 网格控件的供应商,它可以与 MVVM 很好地配合使用;这允许通过拖动列进行分组。我一直在环顾四周,乍一看,我目前的选择似乎是 Telerik。 如果有人对一个或多个供应商有经验,我
我在一家小型初创公司工作,该公司仅托管在 Azure 中,我想知道保护一切的最佳方法。 我使用以下服务 网络应用(面向公众) 虚拟机 - 运行应用和服务 Sql 服务器 服务总线 存储帐户。 网络应用
我有一个 C++ 应用程序,目前使用简单的 TCP/IP 客户端/服务器模型在其自身的 2 个实例之间进行通信。这在本地网络上运行良好,但我希望它能在外部网络上使用。目前,可能由于防火墙问题,它无法跨
我在 aws 中有一个实验室设置,有一个 vpc、一个 IGW、几个不同的子网和一些 ec2 实例,没什么可疯狂的。 我正在尝试将这个 VPC 与里面的所有东西一起导出,但不知道如何去做。 我尝试了
我过去经常使用 Dojo,并且非常喜欢它提供的小部件基础结构。您可以轻松地分离代码和 html 内容,它与 dojo 使用的 require-system 很好地链接在一起,最后但并非最不重要的一点是
我认为我的问题很简单,但我仍然没有找到适合我的答案,无论是在这里还是在那里..所以如果有人能帮助我,我会很高兴,不管是提供有用的链接还是其他什么... 我想要达到的目标:我有一个 Ignite UI
Map Reduce 是一种最近似乎受到很大关注的模式,我开始在我的一个专注于事件处理管道(iPhone 加速度计和 GPS 数据)的项目中看到它的体现。我需要为这个项目构建大量的基础设施,事实上它超
如何最好地设置我的 PHP (LAMP) 开发环境,以便我拥有开发、暂存和生产服务器。一键式部署到其中任何一个,以及一键式回滚到任何修订。回滚还应该将数据库模式和数据回滚到源代码是最新时的状态。 现在
我一直在用Infragistics几年来,UltraWebGrids 出现在多个产品中,但与它们一起走到了十字路口。我一直在调查Telerik产品,它们似乎比演示中的 Infragistics 网格表
有人能告诉我如何使这个 viewModel 中的 getMovies 函数可测试吗?我无法让单元测试正确地等待协程.. (1) 我很确定我必须创建一个 test-CoroutineScope 和一个正
在iggrid上进行Excel风格的过滤过程中,我想在显示网格后隐藏一些自定义过滤条件。 我已经看到了:http://infragistics.com/community/forums/t/97384
我们正在为客户制作一个大型 Web 表单,它有六个日期字段,为此我们使用了 Infragistics WebDatePicker 控件(在 asp.net 4.6 中)。它们工作正常(尽管向它们应用验
目前我们在单个云服务器上设置了所有内容,包括: 数据库服务器 Apache celery redis 作为 celery 和其他一些任务的代理 等等 现在我们正在考虑将主要组件分解为单独的服务器,例如
将领域层的所有接口(interface)(模块、模型、实体、领域服务等)全部归入基础设施层是否有意义?如果没有,创建一个“共享”项目/组件将所有这些组合到一个共享库中是否有意义?毕竟,“基础设施层”的
我知道这个问题已经被无数人问过。但是,我没有找到任何适合我的解决方案。 我有一个 .NET 网站项目,并且正在使用 Entity Framework 6。在本地,该项目没有任何问题,一切都运行得很好。
我已将 UltraGrid 放在 WinForms 用户控件上。我调整了一些设置,以便可以将网格用作只读多行选择表。但有一个问题:默认情况下,第一行似乎被选中。 但是 Selected.Rows 属性
我是 IOS 开发的新手。我想知道每个人都使用哪种语言/框架来为高流量、可扩展的 IOS 应用程序后端创建 RESTFUL Web 服务。 解决方案需要:1. 安全登录2. Restful 网络服务(
我是一名优秀的程序员,十分优秀!