小编cod*_*ove的帖子

没有注释的Protobuf-net序列化

我看了这个答案,我的情况是我不需要保持向后兼容性,我必须有一个解决方案,无需用protobuf-net所需的属性装饰数十个类.所以我尝试使用RuntimeTypeModel.Default.InferTagFromNameDefault = true;但我可能没有正确使用它,因为Serializer.Serialize调用仍然会引发异常请求合同.这是我的快速测试,我做错了什么?

public enum CompanyTypes
{
    None, Small, Big, Enterprise, Startup
}

public class BaseUser
{
    public string SSN { get; set; }    
}

public class User : BaseUser
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    public DateTime BirthDate { get; set; }
    public List<string> Friends { get; set; }
    public Company Company { get; set; }
}

public class …
Run Code Online (Sandbox Code Playgroud)

c# serialization annotations protobuf-net

18
推荐指数
2
解决办法
9956
查看次数

LaTeX用于生产中的PDF生成

我在读研究生时用LaTeX写了几本白皮书.从那以后,我对LaTeX允许用户做什么有一个非常好的印象,特别是它提供的优于格式化的控制等.

现在我在讨论是否应该将LaTeX用于我们的生产应用程序来生成PDF.我已经尝试了几个商业和免费的PDF库(PDFSharp/MigraDoc,iTextSharp,专家PDF等),但没有一个提供我需要的精确控制量,而不会使代码库长期难以维护.

如果我决定走这条路,它将从C#完成.由于LaTeX已经有了命令行界面,我应该可以很容易地从C#中做到这一点,作为从我的程序分叉的外部进程.

但我正在寻找社区的一些评论.

  1. 有人试过吗?如果是这样,有什么问题?
  2. 您如何看待这个想法 - 利弊(我对gotachas更感兴趣)?

欢迎所有反馈.

.net c# latex

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

更改.NET Web API 2中通过Swashbuckle生成的Swagger JSON的参数名称

目标:我正在设计一个REST API,允许用户在查询字符串上传递HTTP GET请求的参数.就像是

http://fake.api.com/search?api-key=1235&term=car&rows=10
Run Code Online (Sandbox Code Playgroud)

实现:在服务器端,我有一个模型绑定器,它接受这3个参数 - api-key,term和rows,并将它们转换为C#对象,这样我的控制器操作方法就不必解析查询字符串了.所以控制器动作方法签名看起来像

public IHttpActionResult Get(RequestObject request)
Run Code Online (Sandbox Code Playgroud)

问题:我在Swagger中遇到的是它生成文档和测试工具时,它将输入参数列为request.api-key,request.term和request.rows.这是因为从服务器获取的JSON是将对象名称添加到这些值的前缀.因此,当您尝试使用Swagger UI执行HTTP GET请求时,它会构建类似的URL

http://fake.api.com/search?request.api-key=1235&request.term=car&request.rows=10
Run Code Online (Sandbox Code Playgroud)

这是对服务器的错误请求.现在我可以轻松地使我的模型绑定器变得更聪明,只是忽略"请求".部分,但这似乎是一个解决这个问题的落后方式.

问题:如何在服务器端自定义由Swashbuckle - > Swagger生成的JSON,以便此特定对象的参数名称不以对象名称为前缀?我确实调查了Swashbuckle可扩展性API公开的ISchemaFilter和IDocumentFilter,但我没有看到一个干净的方法来做到这一点.可能是有可能的,但在这种情况下,一个例子会有所帮助.

c# json asp.net-web-api swagger swashbuckle

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

单声道上的PdfSharp

有没有人试图将PdfSharp库移植到Mono?我刚刚针对PdfSharp.dll v1.2 beta 运行MoMA,我得到大约12个P/Invoke错误和10个左右的Mono TODO.只是想知道是否有人将PdfSharp移植到Linux和OSX,如果是这样,它是怎么回事?试着评估PdfSharp是否适合我.

.net linux macos mono pdfsharp

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

Windows图像采集 - 在C#中设置设备属性

我有一个C#(WinForm)程序,支持使用WIA进行扫描.我正在尝试在扫描一个或多个文档之前设置设备属性.主要是我想设置扫描仪的纸张尺寸.以下是代码片段:

foreach (Property property in selectedDevice.Properties)
{
   //WiaProperties.WiaDpsHorizontalBedSize is my constant
   if (property.PropertyID == WiaProperties.WiaDpsHorizontalBedSize)
   {
       //Set property value here...             
   }
}
Run Code Online (Sandbox Code Playgroud)

我找到了水平床尺寸属性,但问题是如何将其设置为值?有一个属性的set_Value属性,但似乎需要引用一个结果对象.所以我不知道如何在设备上设置属性?

c# wia

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

在 C# 中读取 PPM 图像

在 C# 中读取 PPM (P6) 图像文件并将其保存为位图的最佳方法是什么?

c# bitmap ppm

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

平板电脑与手机检测51degrees.mobi

我正在尝试找到一种方法来将移动设备确定为手机或平板电脑.我正在使用51Degree.mobi(http://51degrees.codeplex.com/)的C#库.我看到浏览器对象上已经有一个IsMobileDevice属性,所以我知道它是否是一个移动设备,但现在我正在寻找另一个属性IsTablet(或其他一些方法来弄清楚).我想我可以根据屏幕尺寸做出决定,但这似乎并不牢固.

c# tablet detection

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

将入口点移动到WinForm应用程序中的DLL

我试图找到一种方法来预先处理我的WinForm应用程序加载之前的一些事情.我尝试将static void Main()放在类库项目中的表单中,并从Program.cs中注释掉它.这产生了编译时错误:"...不包含适用于入口点的静态'Main'方法".这是有道理的,因为没有加载程序,DLL也没有加载.

所以问题是,有没有办法做到这一点?我希望DLL中的表单能够确定启动应用程序的表单:

[STAThread]
static void Main()
{
   Application.EnableVisualStyles();
   Application.SetCompatibleTextRenderingDefault(false);

   if(condition1)
   {
      Application.Run(new Form1());
   }
   else if(condition2)
   {
      Application.Run(new Form2());
   }
}
Run Code Online (Sandbox Code Playgroud)

此逻辑将在多个应用程序中使用,因此将其放在通用组件中是有意义的.

c# dll entry-point

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

实体框架4.1 POCO - 多对多加载

我有以下4个表(针对此问题进行了简化):


公司

CompanyId | 名称

雇员

EmpoyeeId | CompanyId | FirstName | 姓

允许

PermissionId | CompanyId | 允许

EmployeePermission

EmployeePermissionId | PermissionId | 员工ID


而POCO如下:

[Table("Employee")]
public class Employee
{
    public int EmployeeId { get; set; }
    public int CompanyId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public Company Company { get; set; }
    public List<Permission> Permissions { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够将公司和权限加载为Employee的属性.我可以使用以下代码加载公司:

var employee = _context.Employees
            .Where(u …
Run Code Online (Sandbox Code Playgroud)

c# many-to-many entity-framework poco

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