小编Iva*_*ono的帖子

使用Webbrowser控件来获取和发布数据?

我有一个带有webbrowser控件的Windows窗体.使用此控件,我需要登录网站,并获取和发布数据.

登录部分将保持手动,因为各种标题和cookie已创建并存储.

但是,是否可以使用控件发送post/get请求?

c# http webbrowser-control visual-studio-2012

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

Web API控制器操作调用两次

我的控制器动作被调用两次,我无法弄清楚为什么!

这是一个典型的控制器:

[Authorize]
public abstract class BaseController : ApiController
{
    protected readonly ILogService logService;
    protected HttpResponseMessage response = null;

    protected BaseController(ILogService logService)
    {
        this.logService = logService;
    }

    protected override void Initialize(HttpControllerContext controllerContext)
    {
        base.Initialize(controllerContext);

        //check authorization here
    }
}

public abstract class EntityController<T> : BaseController
{
    public EntityController(ILogService logService) : base(logService) { }

    [HttpGet]
    public abstract IHttpActionResult Get(int id);

    [ActionName("Find")]
    [HttpGet]
    public virtual IHttpActionResult Find(string param)
    {
        return null;
    }

    [HttpPost]
    [ValidateModel]
    public abstract IHttpActionResult Create(T dto);

    [HttpPut]
    [ValidateModel]
    public …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api

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

SQL Server ON DELETE SET NULL错误

在我的数据库中,我有一个地址表,该表与其他表(例如,客户,员工等)一起用作外键中的主表。

SQLFiddle显示之间的关系addressescustomers,其中customers具有2个地址。

目前FK设置为ON DELETE NO ACTION,我开始将它们更改为ON DELETE SET NULL

对于大多数只有一个地址列的表来说,这已经很好用了。在一个只有一个地址列的特定表上,以及在有多个地址列的所有表上,我得到了错误:

消息1785,级别16,状态1,第1
行在表“客户”上引入外键约束“ FK_customers_shipping_address”可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。

消息1750,级别16,状态1,行1
无法创建约束。请参阅先前的错误。

如果我不使用,CASCADE为什么会出现此错误?有没有解决的办法?

sql sql-server sql-server-2014

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

使用属性上的sum验证集合

我有这两个实体:

public class Parent
{
    public ICollection<Child> Children {get; set;}
}

public class Child
{
    public decimal Percentage {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我想添加验证规则,以便Percentage所有子项的总数为100.如何在以下验证器中添加此规则?

public ParentValidator()
{
    RuleFor(x => x.Children).SetCollectionValidator(new ChildValidator());
}

private class ChildValidator : AbstractValidator<Child>
{
    public ChildValidator()
    {
        RuleFor(x => x.Percentage).GreaterThan(0));
    }
}
Run Code Online (Sandbox Code Playgroud)

c# fluentvalidation

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

如何用CefSharp启用Adobe Flash?

我正在使用最新版本的CefSharp,我需要显示Flash.使用Chrome时,页面会正确显示.但是,当使用CefSharp时它不会.

到目前为止我试过:

        var browser = new ChromiumWebBrowser(URL)
        {
            BrowserSettings = new BrowserSettings() {
                Java = CefState.Enabled,
                Plugins = CefState.Enabled,
            },
            Dock = DockStyle.Fill
        };
Run Code Online (Sandbox Code Playgroud)

当我加载时,about:plugins我得到:

CEF 3.2357.1287.g861c26e

铬43.0.2357.130

操作系统Windows

WebKit 537.36

JavaScript 4.3.61.30

用户代理Mozilla/5.0(Windows NT 6.2; Win64; x64)AppleWebKit/537.36(KHTML,与Gecko一样)Chrome/43.0.2357.130 Safari/537.36

如何在CefSharp中启用Flash?

c# flash winforms cefsharp

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

Bindingsource多次调用控件的value属性?

我有一个简单的DTO类,我将其设置为窗体上绑定源的数据源.

表单包含具有Value属性的自定义控件.这是属性:

[Browsable(false)]
[Bindable(BindableSupport.Yes, BindingDirection.TwoWay)]
public virtual T Value
{
    get { return this.value; }
    set { this.value = value; }
}
Run Code Online (Sandbox Code Playgroud)

当控件绑定到bindingsource时,setter被调用6次.当控件未绑定时,setter仅被调用2次

在这两种情况下,第一次调用是因为设计器代码有一行:

mycontrol.Value = null;
Run Code Online (Sandbox Code Playgroud)

最后一次调用是因为我设置了一个值.所以第一次和最后一次通话都是正常的.但是当绑定控件时,为什么setter被称为额外4次?

c# data-binding bindingsource winforms

5
推荐指数
0
解决办法
107
查看次数

在同一方法中使用多个等待的效果?

我有以下方法提交更改数据库(使用实体框架):

public async Task<int> CommitAsync(Info info)
{
    if (this.Database.Connection.State == ConnectionState.Closed)
        await this.Database.Connection.OpenAsync();

    await SetInfo(info);
    return await base.SaveChangesAsync();
}
Run Code Online (Sandbox Code Playgroud)

以上方法是否可以安全使用,或者我应该:

  1. 避免使用async-await,或
  2. 使用 ContinueWith

c# asynchronous async-await

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

如何直接针对 List&lt;T&gt; 进行验证?

我有一个模型类:

public class MyModel() { //properties here... }
Run Code Online (Sandbox Code Playgroud)

我想验证一个MyModel对象列表。所以我创建了这个验证器:

class MyModelListValidator : AbstractValidator<List<MyModel>>
{
    public MyModelListValidator ()
    {
        RuleFor(x => x)
            .SetCollectionValidator(new MyModelValidator())
            .When(x => x != null);
    }

    private class MyModelValidator : AbstractValidator<MyModel>
    {
        public MyModelValidator()
        {
            //MyModel property validation here...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但上面的不起作用。另一种方法是创建一个类,如:

public class MyModelList()
{
    public List<MyModel> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这会奏效。

但是有没有办法在不使用这个额外类的情况下做到这一点?

c# fluentvalidation

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

对象不是响应消息模型的基元

我按如下方式装饰了一个动作

[SwaggerResponse(HttpStatusCode.OK, "List of customers", typeof(List<CustomerDto>))]
[SwaggerResponse(HttpStatusCode.NotFound, Type = typeof(NotFoundException))]
Run Code Online (Sandbox Code Playgroud)

OK模型显示正确.

但是,在Repsonse Messages下,我得到'对象不是原始' NotFound.自定义异常派生自Exception,实现ISerializable,也有[Serializable][DataContract()]

如何显示实际数据类型而不是消息?

另外,如果我使用这些属性装饰所有动作,那么在正常使用WebApi时是否会导致性能下降?

c# asp.net asp.net-mvc swagger swashbuckle

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

如何使用中间件代替控制器初始化?

我正在将我的 ASP.Net 应用程序迁移到 ASP.Net 核心,我拥有的一项功能是我的所有控制器都继承自我所做的基本控制器:

protected override void Initialize(HttpControllerContext controllerContext)
{
    base.Initialize(controllerContext);

    string token = controllerContext.Request.Properties["token"] as string;
    user = UserCache.Get(token);

    //Called by derived controllers
    //to set their repository user
    SetInfo();
}
Run Code Online (Sandbox Code Playgroud)

我需要将上面的代码移动到中间件吗?中间件是否允许我设置调用控制器的 SetInfo() 方法?

c# asp.net asp.net-core

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