我有一个带有一些测试功能的.net Core 2 API设置.(Visual Studio 2017)
使用postman我用一个原始数据发布到该方法的帖子,但模型只是空白?为什么?
// POST api/Product/test
[HttpPost]
[Route("test")]
public object test(MyTestModel model)
{
try
{
var a = model.SomeTestParam;
return Ok("Yey");
}
catch (Exception ex)
{
return BadRequest(new { message = ex.Message });
}
}
public class MyTestModel
{
public int SomeTestParam { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我努力找到一种方法来获取我的枚举变量名称和显示名称的字符串部分(同时使用变量名称和字符串“显示”名称)
我想要这个是因为我会在过滤器查询中使用变量名,并在前端显示显示名。
所以我找到了一种方法来创建一个对象来充当枚举,并认为 id 只是为你们添加它在这里。
我到处都看,但似乎没有一个标准(我可以看到)如何检查图像是否为空白.在C#中
我有办法做到这一点,但很想知道检查图像是否为空白的正确方法是什么,所以每个人都可以在将来知道.
我不会复制粘贴一堆代码,如果你想要我,这将是我的荣幸,但我首先要解释我如何检查图像是否为空白.
你拍一张.jpg图片,获取它的宽度.例如500像素然后你将它除以2给你250
然后你检查每个像素的颜色在(250宽度和高度)的位置(你迭代的地方是想象图像的高度).
这样做只是垂直检查图像的中间像素线.它通过所有像素检查,看看颜色是否是白色除外.我已经这样做了,所以你不必搜索所有500*像素的高度,因为你几乎总是会遇到页面中间的颜色.
它的工作......有点慢......必须有更好的方法来做到这一点?您可以将其更改为垂直搜索2/3/4行,以增加发现非空白页面的机会,但这将花费更长时间.
(另请注意,使用图像的大小来检查它是否包含某些内容在这种情况下不起作用,因为打开两个句子的页面和空白页面的大小彼此太靠近)
添加解决方案后.
帮助实施和理解解决方案的资源.
(请注意,在第一个网站上,所声明的Pizelformat实际上是Pixelformat) - 我知道的小错误,只是提到,可能会引起一些混淆.
在我实施该方法以加速像素搜寻之后,速度没有增加那么多.所以我认为我做错了什么.
40个图像的旧时间= 15.63.
40张图片的新时间= 15.43
我看到DocMax 引用的伟大文章,代码"锁定"在一组像素中.(或者多数民众赞成我是如何理解的)所以我所做的就是锁定每页的像素中间行.这是正确的举动吗?
private int testPixels(String sourceDir)
{
//iterate through images
string[] fileEntries = Directory.GetFiles(sourceDir).Where(x => x.Contains("JPG")).ToArray();
var q = from string x in Directory.GetFiles(sourceDir)
where x.ToLower().EndsWith(".jpg")
select new FileInfo(x);
int holder = 1;
foreach (var z in q)
{
Bitmap mybm= Bitmap.FromFile(z.FullName) as Bitmap;
int blank = getPixelData2(mybm);
if (blank == 0)
{
holder …
Run Code Online (Sandbox Code Playgroud) 我想知道这是否是我可以忽略的事情。
我扩展 Equatable 是为了比较对象,但扩展类要求我的属性是最终的(不可变的,我明白了)。但是,一旦我将其传递到小部件中,这就会阻止我编辑该对象。我可以删除final,它工作得很好,然后我可以将一个对象传递到一个小部件中,编辑它,然后将它传回(无需创建一百个变量)。
所以我的问题。这是可以接受的吗,Equatable 仍然有效吗?如果是的话,那就太好了,他们需要解决一些问题。如果不是,为什么不呢,我可以选择使用扩展 Equatable 的类传入和编辑对象吗?
错误:此类(或此类继承的类)被标记为“@immutable”,但其一个或多个实例字段不是最终的:
class PriceItem extends Equatable {
final String key; // I removed the final here
PriceItem({
this.key,
});
@override
List<Object> get props => [
key,
];
}
Run Code Online (Sandbox Code Playgroud) 我在想.如果我有一个包含20个(或更多)列名的表,并且我想选择所有这些列,但是这20列中的一列是日期列,并且您想要更改该列的格式,您将如何进行那?这显然不起作用(创建重复的列)
Select *, CONVERT(varchar(100),courseStartDate,111) from EthicsManagement
Run Code Online (Sandbox Code Playgroud)
这是为了避免编写一个select语句,单独选择所有20列并使用该语句转换其中一列
Select xxxx,xxx,xxx,xxx,xx,xx,xxx,xxx,xx,xx,xxx,xxx,xx, CONVERT(varchar(100),courseStartDate,111) from xxx
Run Code Online (Sandbox Code Playgroud) 我有一个包含大量方法的类.例如
private int forFunction(String exceptionFileList, FileInfo z, String compltetedFileList, String sourceDir)
{
atPDFNumber++;
exceptionFileList = "";
int blankImage = 1;
int pagesMissing = 0;
//delete the images currently in the folder
deleteCreatedImages();
//Get the amount of pages in the pdf
int numberPDFPage = numberOfPagesPDF(z.FullName);
//Convert the pdf to images on the users pc
convertToImage(z.FullName);
//Check the images for blank pages
blankImage = testPixels(@"C:\temp", z.FullName);
//Check if the conversion couldnt convert a page because of an error
pagesMissing = numberPDFPage - …
Run Code Online (Sandbox Code Playgroud) 为什么在我发布我的项目之后,我不能在关闭项目后运行我的exe(你在"Debug"文件夹中找到的那个)而没有收到此错误消息? - 因此不使用我发布的项目,仍然只使用exe
我创建了一个测试项目,只是为了测试是否是这种情况,每次都会发生这种情况.
运行程序
因此打开一个空白表格.
你怎么摆脱这个?我已经读过你应该在你的清单上添加东西等,但肯定有一个更简单的方法吗?我在Windows 7 64位计算机上使用Visual Studio 2008.
编辑:
我找到了问题的解决方案.发生这种情况的原因是因为我的项目名称中有"安装程序"或"安装程序"这个词,你能相信吗......这样的事情可能会像这样影响项目.
我发现这个问题在这里得到解答如何防止Vista上的"此程序可能没有正确安装"消息 这确实是该程序执行此操作的原因.
(使用Windows 7 64位和C#)
有没有办法从搜索中排除这些受保护的文件?
这显示文件夹中的所有文件,包括"系统文件"
string[] files = Directory.GetFiles(directory);
Run Code Online (Sandbox Code Playgroud)
奇怪的问题
我动态地将图像的路径包含在源目录中。
将图像目录作为字符串放入工作正常(我注释掉的部分),但是一旦我将其放入变量中,它就会给我错误“找不到模块”。””
var imageDir="assets/img/MyImage.png";
--Working // const imageData= require('assets/img/MyImage.png');
--Not Working const imageData= require(imageDir);
Run Code Online (Sandbox Code Playgroud)
有人知道为什么吗?
不幸的是这里 没有答案