提问人:Nurşen 提问时间:10/29/2022 更新时间:10/29/2022 访问量:150
Visual Studio 2022 for Mac 上的 PostSharp.targets 中出错
An Error Occurred in PostSharp.targets on Visual Studio 2022 For Mac
问:
我正在 VS for Mac 2022 中开发一个 .Net 6/AspNet Core 项目,该项目包括各个方面,第一个是 FluentValidationAspect。当我对这方面进行单元测试时,我得到了两个错误,它们是:
/Users/user/.nuget/packages/postsharp/6.10.15/build/PostSharp.targets(5,5):错误:无法初始化 CoreCLR,HRESULT:0x80004005 (DevFramework.Core) /Users/user/.nuget/packages/postsharp/6.10.15/build/PostSharp.targets(5,5):错误:进程“dotnet”失败,退出代码为 137。(开发框架核心)
`
using System;
using DevFramework.Core.CrossCuttingConcerns.Validation.FluentValidation;
using FluentValidation;
using FluentValidation.AspNetCore;
using PostSharp.Aspects;
using PostSharp.Serialization;
namespace DevFramework.Core.Aspects.PostSharp
{
[PSerializable]
public class FluentValidationAspect: OnMethodBoundaryAspect
{
Type _validatorType;
public FluentValidationAspect(Type validatorType)
{
_validatorType = validatorType;
}
public override void OnEntry(MethodExecutionArgs args)
{
var validator = (IValidator)Activator.CreateInstance(_validatorType);
var entityType = _validatorType.BaseType.GetGenericArguments()[0];
var entities = args.Arguments.Where(t => t.GetType() == entityType);
foreach(var entity in entities)
{
ValidatorTool.FluentValidate(validator, entity);
}
}
}
}
`
`
using System;
using FluentValidation;
namespace DevFramework.Core.CrossCuttingConcerns.Validation.FluentValidation
{
public class ValidatorTool
{
public static void FluentValidate(IValidator validator, object entity)
{
//var result = validator.Validate(entity);
var context = new ValidationContext<object>(entity);
var result = validator.Validate(context);
if (result.Errors.Count>0)
{
throw new ValidationException(result.Errors);
}
}
}
}
`
`
using System;
using DevFramework.Core.Aspects.PostSharp;
using DevFramework.Northwind.Business.Abstract;
using DevFramework.Northwind.Business.ValidationRules.FluentValidation;
using DevFramework.Northwind.DataAccess.Abstract;
using DevFramework.Northwind.Entities.Concrete;
namespace DevFramework.Northwind.Business.Concrete.Managers
{
public class ProductManager: IProductService
{
private IProductDal _productDal;
public ProductManager(IProductDal productDal)
{
_productDal = productDal;
}
public Product Add(Product product)
{
return _productDal.Add(product);
}
public List<Product> GetAll()
{
return _productDal.GetList();
}
public Product GetById(int id)
{
return _productDal.Get(p => p.ProductId == id);
}
[FluentValidationAspect(typeof(ProductValidator))]
public Product Update(Product product)
{
return _productDal.Update(product);
}
}
}
`
**在我在这里提问之前,我将这个问题发送给了 PostSharp 服务台。我找不到确切的解决方案。此外,我在 Macbook Air 2017 上有一个英特尔酷睿 i5 处理器。**
请帮帮我,提前致谢。
我尝试在 VS 2022 For Mac 的 .Net 6 项目上使用 PostSharp。 我本来想跑一个测试。 测试不起作用,我得到了 2 个错误。
答: 暂无答案
评论