小编Cof*_*fka的帖子

通过HttpClient发布文件时,HttpRequest.Files为空

服务器端:

    public HttpResponseMessage Post([FromUri]string machineName)
    {
        HttpResponseMessage result = null;
        var httpRequest = HttpContext.Current.Request;

        if (httpRequest.Files.Count > 0 && !String.IsNullOrEmpty(machineName))
        ...
Run Code Online (Sandbox Code Playgroud)

客户端:

    public static void PostFile(string url, string filePath)
    {
        if (String.IsNullOrWhiteSpace(url) || String.IsNullOrWhiteSpace(filePath))
            throw new ArgumentNullException();

        if (!File.Exists(filePath))
            throw new FileNotFoundException();

        using (var handler = new HttpClientHandler { Credentials=  new NetworkCredential(AppData.UserName, AppData.Password, AppCore.Domain) })
        using (var client = new HttpClient(handler))
        using (var content = new MultipartFormDataContent())
        using (var ms = new MemoryStream(File.ReadAllBytes(filePath)))
        {
            var fileContent = new StreamContent(ms);
            fileContent.Headers.ContentDisposition …
Run Code Online (Sandbox Code Playgroud)

.net c# httpclient asp.net-web-api

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

Sqlite中的TSQL“IF @@Rowcount > 0”模拟?

我有 t-sql 插入查询到表 [foo] (bar_id int 主键自动增量,bar_name varchar) 和文本:

INSERT INTO foo(bar_name)
VALUES (@bar_name_new);
IF @@ROWCOUNT > 0
    SELECT bar_id, bar_name
    FROM foo
    WHERE bar_id = scope_identity();
Run Code Online (Sandbox Code Playgroud)

触发器可以在插入后修改 bar_name 字段。这就是为什么我需要刷新“bar_name”字段。现在我需要在 sqlite db 上做同样的事情。我写过这个:

INSERT INTO foo(bar_name)
VALUES (@bar_name_new);

 SELECT bar_id, bar_name
 FROM foo
 WHERE bar_id = (SELECT last_insert_rowid());
Run Code Online (Sandbox Code Playgroud)

我可以检查数据库中调用 sqlite changes() 函数的更改次数。我知道sqlite中的case语句。但是我怎么能告诉sqlite当changes()返回0时不需要做select?

t-sql sql-server sqlite

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

在UnitOfWork和Repository之间共享一个NHibernate会话

我正在尝试用NHibernate实现UnitOfWork和Repository模式.我正在寻找在工作单元实例和存储库实例之间共享会话的最佳方法.

最明显的方法ThreadStaticUnitOfWork课堂上介绍属性

public class UnitOfWork : IUnitOfWork
{
    public static UnitOfWork Current
    {
        get { return _current; }
        set { _current = value; }
    }
    [ThreadStatic]
    private static UnitOfWork _current;

    public ISession Session { get; private set; }

    //other code
}
Run Code Online (Sandbox Code Playgroud)

然后在Repository课堂上:

public class Repository<TEntity> : IRepository<TEntity> where TEntity : class
{
    protected ISession Session { get { return UnitOfWork.Current.Session; } }

    //other code
}
Run Code Online (Sandbox Code Playgroud)

但是我不喜欢上面列出的实现,并决定找到另一种方法来做同样的事情.

所以我带来了第二种方式:

public interface ICurrentSessionProvider : …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate repository unit-of-work autofac

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

Windows 7 + .NET 4.0中“ Marshal.StructureToPtr”处的访问冲突异常(Windows XP + .NET 3.5正常运行)

这是我的代码:

internal void Show()
{
    if (Parent == null)
        throw new NullReferenceException();
    EDITBALLOONTIP ebt = new EDITBALLOONTIP();
    ebt.cbStruct = Marshal.SizeOf(ebt);
    ebt.pszText = Text;
    ebt.pszTitle = Caption;
    ebt.ttiIcon = (int)Icon;
    IntPtr ptrStruct = Marshal.AllocHGlobal(Marshal.SizeOf(ebt));
    Marshal.StructureToPtr(ebt, ptrStruct, true); // Here we go.
    // Access violation exception in Windows 7 + .NET 4.0
    // In Windows XP + .NET 3.5, it works just fine.

    // ... Some other code ...

    Marshal.FreeHGlobal(ptrStruct);
}
Run Code Online (Sandbox Code Playgroud)

这是结构:

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
private struct EDITBALLOONTIP
{
    internal int …
Run Code Online (Sandbox Code Playgroud)

.net c# unmanaged marshalling

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

JQuery UI ButtonSet工具提示

是否有任何标准方法为buttonset中的每个radiobutton添加工具提示?

<span id="tools">
    <input type="radio" id="feature1" name="tool" title="feature 1"><label for="feature1">Tool 1</label>
    <input type="radio" id="feature2" name="tool" title="feature 2"><label for="feature2">Tool 2</label>
</span>
Run Code Online (Sandbox Code Playgroud)

和脚本:

$('#tools').buttonset();
Run Code Online (Sandbox Code Playgroud)

我已经为每个输入添加了标题,但没有任何工具提示.

html jquery jquery-ui

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

ASP.NET MVC + EF性能

我的控制器中有这个代码:

public class MyController : Controller
{
  private readonly IMyRepository myRepository;

  public MyController() : this(new MyRepository())
  {}

  public MyController(IMyRepository myRepository)
  {
    this.myRepository = myRepository;
  }

  public ActionResult Index()
  {
    return View(myRepository.GetData());
  }
}
Run Code Online (Sandbox Code Playgroud)

MyRepository使用EF进行数据操作.每次用户加载此页面时,MyRepository的实例都在创建.这意味着EF上下文正在创建,Fluent API代码正在执行(OnModelCreating方法).

每次用户加载页面时是否有可能不创建EF上下文?

c# asp.net-mvc entity-framework dependency-injection ef-code-first

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