我目前正在使用Fluent Validation
而不是使用Data Annotations
我的Web API并使用swagger来获取API文档.流畅的验证规则没有反映在swagger模型中,因为我无法使用swagger模式过滤器配置流畅的验证规则.
本博客对ASP.net MVC使用它有很好的解释.但我无法配置它在ASP.net Core中使用它.
到目前为止,我已经尝试了以下代码,但我无法获得验证器类型.
services.AddSwaggerGen(options => options.SchemaFilter<AddFluentValidationRules>());
public class AddFluentValidationRules : ISchemaFilter
{
public void Apply(Schema model, SchemaFilterContext context)
{
model.Required = new List<string>();
var validator = GetValidator(type); // How?
var validatorDescriptor = validator.CreateDescriptor();
foreach (var key in model.Properties.Keys)
{
foreach (var propertyValidator in validatorDescriptor.GetValidatorsForMember(key))
{
// Add to model properties as in blog
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我开发了一个使用OpenCV的c ++程序.现在我想在C#中开发一个基于Windows窗体的应用程序.由于C#只能处理托管代码,因此几乎不可能在C#应用程序上直接运行OpenCV.我已经搜索了使用OpenCV创建C#应用程序的不同方法,其中一个是EmguCV,另一个我更感兴趣的方法是在C#应用程序中导入c ++ .dll文件并以这种方式调用非托管函数.
我开始在C创建简单的功能++和我能使用cout
,并cin
在通过导入DLL我的C#应用程序.当我尝试在我的c ++应用程序中包含OpenCV头文件时,当我编译时,我遇到此错误
错误LNK1104:无法打开文件'tbb_debug.lib'
有人曾经这样做过,但是我无法弄清楚他是如何用c#在Cv :: Mat格式的网络摄像头中显示 c ++
问题是我有一个函数,它接受一个cv :: Mat变量并对其执行一些图像处理并返回处理过的矩阵.我想在我的C#应用程序中使用用c ++编写的函数.但问题是,当我在c ++中包含OpenCV库时,我无法创建dll.
所以请不要建议我使用EmguCV或OpenCV的任何其他.NET包装器.
我正在为我的项目使用Visual Studio 2010.