小编ena*_*rik的帖子

使用 C# 搜索 OCR(可搜索)PDF

我需要从已使用 OCR 程序转换的 PDF 中提取文本。我是否使用普通的 PDFReader 来获取文本,或者 OCR 转换后的 PDF 是否需要特殊处理?

pdf ocr

5
推荐指数
1
解决办法
2885
查看次数

以下列方式对ASP.NET MVC代码进行单元测试可能存在哪些问题?

我一直在关注NuGetGallery中单元测试的方式.我观察到,当测试控制器时,服务类被模拟.这对我来说很有意义,因为在测试控制器逻辑时,我不想担心下面的架构层.在使用这种方法一段时间之后,我注意到当我的服务类发生变化时,我经常在我的控制器测试中修复我的模拟.为了解决这个问题,在没有咨询比我更聪明的人的情况下,我开始编写这样的测试(别担心,我没有那么远):

public class PersonController : Controller
{
    private readonly LESRepository _repository;

    public PersonController(LESRepository repository)
    {
        _repository = repository;
    }

    public ActionResult Index(int id)
    {
        var model = _repository.GetAll<Person>()
            .FirstOrDefault(x => x.Id == id);

        var viewModel = new VMPerson(model);
        return View(viewModel);
    }
}

public class PersonControllerTests
{
    public void can_get_person()
    {
        var person = _helper.CreatePerson(username: "John");
        var controller = new PersonController(_repository);
        controller.FakeOutContext();

        var result = (ViewResult)controller.Index(person.Id);
        var model = (VMPerson)result.Model;
        Assert.IsTrue(model.Person.Username == "John");
    }
}
Run Code Online (Sandbox Code Playgroud)

我想这将是集成测试,因为我使用的是真正的数据库(我更喜欢内存数据库).我通过将数据放入我的数据库开始我的测试(每个测试在一个事务中运行,并在测试完成时回滚).然后我调用我的控制器,我真的不在乎它如何从数据库中检索数据(通过存储库或服务类)只是要发送到视图的模型必须有我放入数据库的记录,也就是我的断言.关于这种方法的一个很酷的事情是,很多时候我可以继续添加更多层的复杂性,而无需更改我的控制器测试:

public class PersonController …
Run Code Online (Sandbox Code Playgroud)

unit-testing asp.net-mvc-3

4
推荐指数
1
解决办法
1363
查看次数

.NET 如何解析类型?

我很好奇 .net 如何解析类型。我知道有一个编译时组件,因为您无法编译具有 using 语句或不在当前程序集或引用程序集中的完全限定类型的程序。我想知道是编译器出现了错误,还是 Visual Studio 在无法在 proj 文件中找到引用时会引发构建错误?

我也想知道 .net 如何在运行时找到程序集。我知道 .net 使用 JIT 编译器在它第一次运行到来自该程序集的类型时加载程序集。我很好奇它是如何寻找类型和搜索顺序的。程序集清单是否准确地告诉运行时在何处查找引用的程序集(如 ASP.NET web.config 文件)?任何指向博客文章、书籍、规范等的链接将不胜感激。

.net compiler-construction types runtime c#-4.0

4
推荐指数
1
解决办法
222
查看次数

停止UIToolbar从横向方向消失 - iPad

不知道为什么会发生这种情况或如何阻止它,我UIToolBar的细节viewcontroller只在纵向视图中可见.我希望它在所有方向都可见.我怎么做?谢谢.

objective-c orientation uitoolbar ipad uisplitviewcontroller

3
推荐指数
1
解决办法
4538
查看次数

从.NET CF中以编程方式安装CAB文件

我想知道如何以编程方式从我的.NET CF应用程序安装CAB文件.我认为这就像启动一个名为windows ce程序并将CAB文件路径作为参数的进程一样简单.但我不知道该节目是什么或它位于何处.任何人的想法?提前致谢.

cab windows-mobile windows-ce

1
推荐指数
1
解决办法
3047
查看次数

EF 4.3.1迁移 - 从字符串转换日期和/或时间时转换失败

当我试图通过EF迁移使我的数据库版本化时,我收到错误"从字符串转换日期和/或时间时转换失败".问题是我的MS Sql Server版本(带有高级服务的Microsoft SQL Server Express Edition)不支持EF生成的日期字符串('2012-03-21T18:23:13.525Z')用于新的迁移脚本条目(64-位)).这是一个错误吗?有工作吗?

CREATE TABLE [__MigrationHistory] (
    [MigrationId] [nvarchar](255) NOT NULL,
    [CreatedOn] [datetime] NOT NULL,
    [Model] [varbinary](max) NOT NULL,
    [ProductVersion] [nvarchar](32) NOT NULL,
    CONSTRAINT [PK___MigrationHistory] PRIMARY KEY ([MigrationId])
)
BEGIN TRY
    EXEC sp_MS_marksystemobject '__MigrationHistory'
END TRY
BEGIN CATCH
END CATCH
INSERT INTO [__MigrationHistory] ([MigrationId], [CreatedOn], [Model], [ProductVersion]) 
VALUES ('201203210144184_init', '2012-03-21T18:23:13.525Z',  0x33, '4.3.1');
Run Code Online (Sandbox Code Playgroud)

编辑

没关系.这与EntityFramework无关.如果我的SQL Server数据库配置为向后兼容SQL Server 2000,它将不接受该日期格式.我想除非我可以让EF以另一种格式输出它的日期字符串(或者让SQL Server向后兼容到2000并仍然理解EF日期字符串),我将无法在我的数据库中使用EF迁移: - (.如果有人找到了将EF与兼容级别为SQL Server 2000的数据库一起使用的方法,请告诉我.

sql-server-2000 backwards-compatibility ef-migrations entity-framework-4.3

1
推荐指数
1
解决办法
1680
查看次数

给定10,000条记录ID,哪种方式是删除记录的正确方法?

哪个更好,一个带有where子句的delete语句包含10,000或过滤器(例如从表中删除id = 1或id = 2或id = 3等)或执行10,000个删除语句(例如从表中删除id = 1 ;从表中删除id = 2;等)?该数据库是MS SQL Server.

编辑

ID不是顺序的,并且没有where子句可以用来捕获它们(例如id> 100且id <50)因为我不知道这些ID是如何相关的(除了它们全部来自同一张表).所以这真的是一个性能问题.

t-sql database sql-delete

0
推荐指数
1
解决办法
89
查看次数