- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Visual Studio 2015 解决方案,我在其中复制并粘贴了一些我在 Visual Studio 2013 项目中成功使用的 PostSharp 验证属性。
项目全部编译运行成功。不幸的是,旨在测试我的验证属性的单元测试失败了。通过调试,我发现我的所有属性都没有运行过。我已确保在项目引用和 .xproj 文件中正确引用了 PostSharp 包。
我的验证属性代码是这样的:
using System;
using PostSharp.Aspects;
using PostSharp.Reflection;
namespace Foo.Domain.Model.ValidationAttributes
{
/// <summary>
/// Validates the parameter to strictly not be null (empty and whitespace is valid). Throws a System.ArgumentNullException if assigned a null value.
/// </summary>
[Serializable]
public sealed class NotNullAttribute : LocationInterceptionAspect, ILocationValidationAspect<object>
{
public NotNullAttribute()
{
}
public override void OnSetValue(LocationInterceptionArgs args)
{
Exception ex = ValidateValue(args.Value, args.LocationName, args.Location.LocationKind);
if (ex != null)
{
throw ex;
}
args.ProceedSetValue();
}
public Exception ValidateValue(object value, string locationName, LocationKind locationKind)
{
return value == null ? new ArgumentNullException(locationName, string.Format("The parameter '{0}' may not be null.", locationName)) : null;
}
}
}
我的 project.json 显示添加的依赖项:
{
"version": "1.0.0-*",
"description": "MyProject Domain Class Library",
"tags": [ "MyProject" ],
"projectUrl": "",
"licenseUrl": "",
"dependencies": {
"PostSharp": "4.1.21",
"PostSharp.Patterns.Common": "4.1.21",
"PostSharp.Patterns.Model": "4.1.21"
},
"frameworks": {
"net451": { }
}
}
我的 .xproj 文件显示了添加的 PostSharp 目标(我已经检查过它存在于路径中):
<Import Project="..\packages\PostSharp\4.1.21\tools\PostSharp.targets" />
从 PostSharp 文档来看,VS2015 似乎得到了完全支持,但我似乎无法让这些方面发挥作用。我需要做些什么才能在 Visual Studio 2015 上启动和运行 PostSharp?
最佳答案
PostSharp 当前不支持随 ASP.NET 5 引入的新项目构建系统(这在 Compatibility 页面上提到)。当编译“在内存中”运行时,不会使用通常的 MSBuild 扩展点,也不会调用 PostSharp。您可以尝试在 VS 中完全构建您的解决方案,看看这些方面是否以这种方式应用。
PostSharp 团队计划在其中一个即将发布的版本中为新的 ASP.NET 构建系统提供支持。
更新
PostSharp 的 ASP.NET 5 连接器预览版已在 GitHub 上发布 (https://github.com/postsharp/PostSharp.Dnx)。在 ASP.NET 5 RTM 发布之前,这将是一个“正在进行的工作”。
关于c# - PostSharp 不适用于 Visual Studio 2015,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31837047/
我是一名优秀的程序员,十分优秀!