小编Chr*_*sCa的帖子

Visual Studio/Resharper代码格式化 - c#

使用对象初始化程序语法创建新类型时,Visual Studio会自动移动大括号以与新关键字后面的类型对齐

像这样

MyType myType = new MyType
                    {

                    };
Run Code Online (Sandbox Code Playgroud)

但是,我更希望它不要这样做,而是保持原样

MyType myType = new MyType
{

};
Run Code Online (Sandbox Code Playgroud)

任何想法如何做到这一点 - 我已经通过所有Visual Studio格式化选项,找不到合适的

有任何想法吗?

c# resharper formatting visual-studio

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

将数据传递给startup.cs

如何将数据传递到startup.cs?

这是使用集成测试WebHostBuilderTestServer

我需要根据测试夹具传递不同的数据.例如,所以不想从配置文件中提取它

数据将在startup.cs中提供给已注册的中间件

文档似乎建议这应该工作:

var configBuilder = new ConfigurationBuilder()
                .AddInMemoryCollection(new[]
                {
                    new KeyValuePair<string, string>("key", "value"),
                });

            var configuration = configBuilder.Build();

            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseConfiguration(configuration) // config added here
                .UseStartup<Startup>()
                .Build();

            host.Run();
Run Code Online (Sandbox Code Playgroud)

但是当我在startup.cs中检查Configuration对象时,键不存在.并且只有startup.cs中定义的提供程序可用.

我正在尝试在program.cs中执行此操作以测试该概念,然后将转向集成测试

什么想法我做错了什么?

有没有更好的方法将数据传递到启动?

c# .net-core

8
推荐指数
3
解决办法
1993
查看次数

简单的xml解析

什么是解析lat和long以下xml片段的最简单方法.没有名称空间等.

它是一个字符串变量.不是流.

<poi>
      <city>stockholm</city>
      <country>sweden</country>
      <gpoint>
        <lat>51.1</lat>
        <lng>67.98</lng>
      </gpoint>
</poi>
Run Code Online (Sandbox Code Playgroud)

到目前为止我所阅读的所有内容都过于复杂,不应该是一项简单的任务,例如 http://geekswithblogs.net/kobush/archive/2006/04/20/75717.aspx

我一直在看上面的链接

当然在.net中有一种更简单的方法可以做到这一点?

.net c# xml parsing

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

单一登录与表单身份验证

我正在尝试为位于同一域的2个网站设置单点登录

例如

http:// mydomain(包含forms-auth登录页面的顶级站点)

http:// mydomain/admin(单独开发的网站驻留在父网站的虚拟应用程序中)

已经阅读了一些关于单点登录的文章,例如

http://www.codeproject.com/KB/aspnet/SingleSignon.aspx

http://msdn.microsoft.com/en-us/library/dd577079.aspx

他们似乎建议只是在每个web.config中使用相同的machinekey部分,以便每个应用程序的cookie加密和解密相同

我已经设置了这个,我从来没有被提示在子网站(虚拟应用程序)中提供凭据

我总是在父网站上得到提示.

除了具有相同的machineKey我也尝试添加相同<authentication><authorisation>元素

知道我可能错过什么吗?

asp.net authentication forms-authentication single-sign-on

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

设置cookie而不刷新页面

当用户第一次访问特定页面时,我正在显示jQuery叠加层

他们在叠加层中有一个单选按钮,他们可以点击它们说他们不希望再次看到通知

我想设置一个用户不想再看到叠加层的cookie

是否可以在不刷新页面的情况下设置cookie?

我打算将ajax调用回服务器,然后在响应头中设置cookie,但我猜他们不会在Ajax请求/响应中设置?

纯粹从javascript设置cookie是安全/可以的吗?或者这是一个坏主意?

还有其他选择吗?

javascript cookies asp.net-mvc

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

CSVHelper - 无输出

CSVHelper我正在尝试使用nuGet 包创建 csv 文件

这是代码

public ActionResult Test()
{
    var ms = new MemoryStream();
    var sr = new StreamWriter(ms);
    var csv = new CsvWriter(sr);

    csv.WriteField("sd");
    csv.WriteField("sd");
    csv.WriteField("sd");
    csv.WriteField("sd");

    //ms.Seek(0, 0);
    sr.Flush();
    //ms.Position = 0;
    var len = ms.Length;

    return File(ms, "text/csv", "test.csv");
}
Run Code Online (Sandbox Code Playgroud)

但是,该文件始终为空

我在这里读到了几个问题,表明StreamWriter需要冲洗。位置移动到0。但是,我已经尝试过,但似乎不起作用

我也尝试过与using的 语句相同的操作MemoryStreamStreamWriter并且CSVWriter 我已经尝试了所有这些,但它仍然是空白

而且, 的长度MemoryStream始终为零

我究竟做错了什么?

c# csvhelper

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

Isapi过滤器无法在IIS 7上运行(在IIS 6上可以正常工作)

我有一个Isapi dll执行一些基本的URL重写.它在II6上工作正常.但是,现在我的开发机器已升级到Windows 7,我无法在IIS 7下运行它

为了让它发挥作用,还有什么特别需要做的吗?

该网站正在运行经典ASP管道应用程序池(虽然我已尝试过两者)

关于如何解决这个问题的任何建议?

非常感谢

ps将其重写为模块/处理程序不是一种选择.我只想知道如何让现有的DLL在IIS 7上运行.

asp.net iis-7 iis-6 isapi-rewrite isapi

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

在C#中高效解析大型文本文件

我需要读取一个空间分隔的大文本文件,并计算文件中每个代码的实例数.从本质上讲,这些是运行一些实验数十万次的结果.系统会吐出一个看起来像这样的文本文件:

A7PS A8PN A6PP23 ...
Run Code Online (Sandbox Code Playgroud)

实际上有数十万个这样的条目,我需要计算每个代码的出现次数.

我想我可以打开一个StreamReader并逐行浏览,拆分空格字符.查看是否已遇到代码并将该代码的计数加1.但是,考虑到数据的大小,这可能很幼稚.

有人知道处理这种处理的有效算法吗?

更新:

好的,所以共识似乎是我的方法是沿着正确的方向

我有兴趣听到的是 - 更有效的 - StreamReader.TextReader,BinaryReader

存储结果字典的最佳结构是什么?HashTable,SortedList,HybridDictionary

如果文件中没有换行符(我还没有给出样本),那么将整个空间分割成效率是不是很低?

从本质上讲,我期待尽可能提高性能

再次感谢

c# algorithm parsing text-processing

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

将任务<T>转换为任务<DerivedT>

我有一个看起来像这样的同步通用方法

public TResponse Execute<TResponse>(Request request) where TResponse : Response
{
   return (TResponse) proxy.ExecuteRequest(request);
Run Code Online (Sandbox Code Playgroud)

代理是WCF服务引用

它只有一个接收请求并返回响应的方法.但它通过传递派生请求和返回派生响应来使用.如上所示,包装器方法将响应转换为泛型参数(TResponse)指定的派生类型.

您使用派生的请求和响应调用该方法

例如

Execute<GetSomeDataResponse>(new GetSomeDataRequest());
Run Code Online (Sandbox Code Playgroud)

我现在正在生成异步服务引用,因此可以使用任务

所以我想要一个看起来像这样的方法

public Task<TResponse> ExecuteAsync<TResponse>(Request request) where TResponse : Response
{
    // need to cast to a Task<TResponse>
    return proxy.ExecuteRequestAsync(request
Run Code Online (Sandbox Code Playgroud)

可以像这样调用

Task<GetSomeDataResponse> res = ExecuteAsync<GetSomeDataResponse>(new GetSomeDataRequest());
Run Code Online (Sandbox Code Playgroud)

所以我需要一种方法来投射Task<Response>Task<TResponse>

我一直在阅读这个看起来与我需要的相反,但是无法弄清楚如何将它弯曲到我的用例

如何将Task <TDerived>转换为Task <TBase>?

有任何想法吗?

c# asynchronous task

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

装饰器模式 - 从装饰器访问包装对象中的值

我有一个关于装饰器模式的问题

假设我有这个代码

interface IThingy 
{
    void Execute(); 
}

internal class Thing : IThingy
{
    public readonly string CanSeeThisValue;

    public Thing(string canSeeThisValue)
    {
        CanSeeThisValue = canSeeThisValue;
    }

    public void Execute()
    {
        throw new System.NotImplementedException();
    } 
}

class Aaa : IThingy 
{
    private readonly IThingy thingy;

    public Aaa(IThingy thingy)
    {
        this.thingy = thingy;
    }

    public void Execute()
    {
        throw new System.NotImplementedException();
    } 
}


class Bbb : IThingy {
    private readonly IThingy thingy;

    public Bbb(IThingy thingy)
    {
        this.thingy = thingy;
    }

    public void …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns decorator

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