小编mar*_*ler的帖子

从流创建虚拟文件路径

我有一个关于C#和Windows API的一般问题:

我的任务是从文档管理系统(DMS)加载文件,并从该文件创建一个字节数组.从DMS的开发人员那里得到了一个dll,提供了这样的方法:

loadFile(int DocId, string PathToSaveFile);
Run Code Online (Sandbox Code Playgroud)

不幸的是,给定的dll没有为我提供一种方法来将所请求的文件作为字节数组或任何类型的流传递.现在我的问题是,C#是否可以创建某种虚拟路径,而这种路径在二级存储上实际上并不存在.相反,写入此路径的所有位和字节都会在流中转发给我?我的目的是提高性能,因为我不必将数据写入硬盘.

我已经搜索了很多,但实际上不知道我必须寻找的关键字.也许有人可以给我一个提示,或者只是告诉我根本不可能.

c# winapi virtualpathprovider stream file-handling

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

使用Asp.Net 5 Identity 3.0注销后未删除Cookie

我有一个带有自定义角色和用户存储的Asp.Net MVC应用程序(版本6.0.0-rc1-final).经过一番努力,我终于可以创建一个有效的登录机制.但是我现在有麻烦来创建一个干净的注销.我在控制器中的注销代码目前是什么样的:

public async Task<ActionResult> Logout()
{
    if (User.Identity.IsAuthenticated)
    {
    await SignInManager.SignOutAsync();

    }

    return RedirectToAction("Index", "App");
}
Run Code Online (Sandbox Code Playgroud)

此代码的问题是,没有删除一个cookie:.AspNet.Microsoft.AspNet.Identity.Application

只要我不手动删除cookie,应用程序就处于脏状态并抛出空指针异常,因为User.Identity为null.

在stackoverflow上找到了一个描述类似场景的问题.但是那里的解决方案并不适合我,因为我正在使用MVC 6,它不再具有System.Web.

我也有一个样本解决方案,只是工作正常.在此解决方案中,永远不会创建所提到的cookie.也许正确的解决方案不是在注销后删除cookie,而是为了防止以某种方式创建cookie.

c# asp.net cookies asp.net-mvc asp.net-identity

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

INotifyPropertyChanged绑定到GridColumn中的DataTemplate

我已成功将DataGrid中的列绑定到具有实现INotifyPropertyChanged接口的对象的可观察集合:

这是xaml:

<dxg:GridColumn Name="Name" FieldName="Stapel" DisplayMemberBinding="{Binding Path=Name}" />
Run Code Online (Sandbox Code Playgroud)

而对象类中的属性:

public string Name
    {
        get { return _name; }
        set
        {
            if (value == _name) return;
            _name = value;
            OnPropertyChanged("Name");
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是在另一个专栏中我使用的是模板:

<dxg:GridColumn.CellTemplate>
    <DataTemplate>
        <StackPanel>
                <Rectangle Height="19" Width="19" Fill="{Binding Path=Data.StatusColor}"></Rectangle>
        </StackPanel>
    </DataTemplate>
</dxg:GridColumn.CellTemplate>
Run Code Online (Sandbox Code Playgroud)

矩形的Fill属性绑定到"计算"属性:

public SolidColorBrush StatusColor
{
    get
    {
        if (StapelStatus == StapelStatus.Neu)
        {
            return new SolidColorBrush(Colors.CornflowerBlue);
        }
        return new SolidColorBrush(Colors.DarkOrange);
    }
}
Run Code Online (Sandbox Code Playgroud)

一些其他属性设置器,它们改变了值的StapelStatus调用

OnPropertyChanged("StatusColor"); 
Run Code Online (Sandbox Code Playgroud)

我认为这足以改变网格列中矩形颜色的颜色.但不幸的StapelStatus是,当改变并被OnPropertyChanged("StatusColor")称为网格时,并不反映这种变化.我想我必须以某种方式改变绑定DataTemplate.有人可以给我一个建议吗?

c# wpf xaml gridview inotifypropertychanged

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

使用 angular 2 设置 devextreme DataGrid 中日期列的格式

我的 angular2 项目中有一个 devextreme 数据网格。但是,具有日期数据类型的列仅以以下格式显示完整的 javascript 日期:yyyy-MM-ddTHH:mm:ss。我想将此列的格式设置为对用户更友好的格式,例如 dd.MM.yyyy(欧洲风格)。

但是直到现在我所有设置日期格式的尝试都没有成功。

以下是我目前在组件模板中的内容:

    <dx-data-grid [dataSource]="tasks">
        <dxi-column dataField="barcode" ></dxi-column>
        <dxi-column dataField="receiptDate" format="shortDate">
            <dxo-format type="shortDate"></dxo-format> 
        </dxi-column>
    </dx-data-grid>
Run Code Online (Sandbox Code Playgroud)

不幸的是,设置格式的类型根本不会改变任何东西——我仍然得到这个未格式化的 JS 日期字符串。而且我在控制台中也没有任何异常。

devexpress typescript devextreme angular

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

在c#中为OdbcConnection(System.Data.Odbc)设置ConnectionTimeout不起作用

我有一个.net 4.0 c#应用程序需要与mssql 2008的odbc连接.连接通常是完美的.但是当我运行一个通常运行几分钟的查询时(并且在项目的这一点上我不能优化查询运行时),我会在30秒后得到超时:

错误[HYT00] [Microsoft] [SQL Server Native Client 10.0]查询超时已过期

我已经尝试为odbc连接更改驱动程序(sqlsrv32.dll,sqlncli10.dll,sqlncli11.dll),但我总是遇到类似的错误.

这是我为模拟问题而构建的虚拟代码:

using (
    OdbcConnection conn =
        new OdbcConnection("DSN=d3FA;uid=sa;pwd=1234;MARS_Connection=yes;Connection Timeout=37;"))
{
    conn.ConnectionTimeout = 37;
    conn.Open();

    OdbcCommand myCommand = new OdbcCommand("WAITFOR DELAY '00:00:45'", conn);
    myCommand.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我已在连接字符串中设置了连接超时,并且还设置了连接的属性.但似乎只是从查询执行中忽略了这些信息(37秒).超时仍然在30秒后发生.

从Microsoft我获得了Windows ODBC API提供SQLSetStmtAttr-Function的信息,该函数允许设置SQL_ATTR_QUERY_TIMEOUT属性.也许设置这个属性可以解决我的问题 - 但我找不到任何解决方案如何通过.net设置这个值.

结论:有人知道如何增加超时值吗?

.net c# sql-server odbc timeout

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

是从静态方法线程保存的静态方法调用

当我在静态java方法中使用静态属性时,此方法不再是线程保存.

在静态java方法中使用静态方法怎么样?这会弄乱我的价值观吗?

这里有一些例子:

我想这根本不是线程保存:

public static String staticText;
public static Integer staticNumber;

public static String doA(String input1, Integer input2){

    staticText = input1;
    staticNumber = input2;

    return staticText + staticNumber;
}
Run Code Online (Sandbox Code Playgroud)

这将是线程保存:

public static String doB(String input1, Integer input2){
    return input1 + input2;
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,这个方法是什么:

public static String doC(String input1, Integer input2){
    return doB(input1, input2);
}
Run Code Online (Sandbox Code Playgroud)

方法doC仍然是线程保存吗?我只是想确保在doC内调用doB的方法不会制动线程安全.

java thread-safety

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