小编Sta*_*ful的帖子

HttpClient与HttpWebRequest相比,可提供更好的性能和安全性以及更少的连接

我做了一些简单的测试比较和我发现的一些信息

单个HttpClient可以由多个请求共享,如果共享并且请求到达同一目的地,则多个请求可以重用WebRequest需要为每个请求重新创建连接的连接.

我还查阅了一些关于使用HttpClient示例的其他方法的文档

以下文章总结了高速NTLM身份验证的连接共享

HttpWebRequest.UnsafeAuthenticatedConnectionSharing  

我尝试过的可能实现如下所示

一个)

private WebRequestHandler GetWebRequestHandler()
{
    CredentialCache credentialCache = new CredentialCache();
    credentialCache.Add(ResourceUriCanBeAnyUri, "NTLM", CredentialCache.DefaultNetworkCredentials);
    WebRequestHandler handler = new WebRequestHandler
    {
        UnsafeAuthenticatedConnectionSharing = true,
        Credentials = credentialCache
    };

    return handler;
}

using (HttpClient client = new HttpClient(GetWebRequestHandler(), false))
{
}
Run Code Online (Sandbox Code Playgroud)

B)

using (HttpClient client = new HttpClient)
{
}
Run Code Online (Sandbox Code Playgroud)

C)

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("some uri string")
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何帮助,让我了解应该采取哪种方法,以实现最大性能,最小化连接并确保安全性不受影响.

c# httpclient httpwebrequest asp.net-web-api

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

XDocument到XElement

如何将XDocument转换为XElement?

我通过搜索找到了以下内容,但是它用于在XDocument和XmlDocument之间进行转换,而不是XDocument和XElement.

public static XElement ToXElement(this XmlElement xmlelement)
{
    return XElement.Load(xmlelement.CreateNavigator().ReadSubtree());
}

public static XmlDocument ToXmlDocument(this XDocument xdoc)
{
    var xmldoc = new XmlDocument();
    xmldoc.Load(xdoc.CreateReader());
    return xmldoc;
}
Run Code Online (Sandbox Code Playgroud)

我找不到任何将XDocument转换为XElement的东西.任何帮助,将不胜感激.

c# xml xelement linq-to-xml

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

如何使用C#从HTML页面中删除<script>标签?

<html>
    <head>
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript">
            if (window.self === window.top) { $.getScript("Wing.js"); }
        </script>
   </head>
</html>
Run Code Online (Sandbox Code Playgroud)

有没有办法在C#中修改上面的HTML文件并将其转换为这种格式:

<html>
    <head>
    </head>
</html>
Run Code Online (Sandbox Code Playgroud)

基本上我的目标是从HTML页面中删除所有JavaScript.我不知道什么是修改HTML文件的最佳方法.我想以编程方式进行,因为有数百个文件需要修改.

html javascript c#

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

表格排序在twitter bootstrap 3.1.1中

 <div class="table-responsive">
    <table class="table table-hover gradienttable">
        <thead>
            <tr>
                <th>Id</th>
                <th>State</th>
                <th>Sub State</th>
                <th>Title</th>
                <th>Severity</th>                   
                <th>InstanceNum</th>
                <th>CreatedBy</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var incident in Model.GetActiveIncidents())
            {
                <tr>
                    <td><a target="_blank" href=@incident.Url>@incident.Id</a></td>
                    <td>@incident.State</td>
                    <td>@incident.SubState</td>
                    <td>@incident.Title</td>
                    <td>@incident.Severity</td>
                    <td>@incident.InstanceNum</td>
                    <td>@incident.CreatedBy</td>
                </tr>
            }
        </tbody>
    </table>   
</div> 
Run Code Online (Sandbox Code Playgroud)

上面的代码是我将数据填充到表中的方式

如何为twitter bootstrap 3.1.1版本启用此表排序.我在stackoverflow上提到了一个问题并尝试使用它没有工作我怎样才能使表能够使用twitter bootstrap进行排序

有什么建议吗?

html css jquery tablesorter twitter-bootstrap

10
推荐指数
0
解决办法
3万
查看次数

从DataTable创建XML

DataTable以下格式的C#

使用C#:我想将此表转换为XML.请忽略行名称中的错误.这是测试数据.我已经将两列的样本转换为xml,并将相应的行作为属性.但我实际上想要所有列.这是一个数据表.

 <ListDataCollateralDials>
                                <DataCollateralDials Type="Conv">
                                    <Multiplier>1</Multiplier>
                                    <Seasoning>1</Seasoning>
                                    <Lockin>1</Lockin>
                                    <Multiplier>1</Multiplier>
                                    <ElbowShift>0</ElbowShift>
                                    <Steepness>1</Steepness>
                                    <Burnout>1</Burnout>
                                    <Adjustment >1</Adjustment>
                                    <Effect>1</Effect>
                                    <Decay>1</Decay>
                                    <Outs>1</Outs>
                                    <Base>700</Base>
                                    <Slope>1</Slope>
                                    <Base>80</Base>
                                    <Slope2>1</Slope2>
                                    <Base2>200</Base2>
                                    <Slope3>1</Slope3>
                                    <Height>0</Height>
                                    <Length>0</Length>
                                    <Height2>0</Height2>
                                    <Length2>0</Length2>
                                    <Elbow>0</Elbow>
                                                 <Multiplier2>1</Multiplier2>
                                    <Multiplier3>1</Multiplier3>

                                </DataCollateralDials>
<DataCollateralDials Type="Conv">
                                <Multiplier>1</Multiplier>
                                <Seasoning>1</Seasoning>
                                <Lockin>1</Lockin>
                                <Multiplier>1</Multiplier>
                                <ElbowShift>0</ElbowShift>
                                <Steepness>1</Steepness>
                                <Burnout>1</Burnout>
                                <Adjustment >1</Adjustment>
                                <Effect>1</Effect>
                                <Decay>1</Decay>
                                <Outs>1</Outs>
                                <Base>700</Base>
                                <Slope>1</Slope>
                                <Base>80</Base>
                                <Slope2>1</Slope2>
                                <Base2>200</Base2>
                                <Slope3>1</Slope3>
                                <Height>0</Height>
                                <Length>0</Length>
                                <Height2>0</Height2>
                                <Length2>0</Length2>
                                <Elbow>0</Elbow>
                                <Multiplier2>1</Multiplier2>
                                <Multiplier3>1</Multiplier3>

                            </DataCollateralDials>
</ListDataCollateralDials>
Run Code Online (Sandbox Code Playgroud)

c# xml linq datatable dataset

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

从使用IIS部署的webapplicaion使用的库中读取web.config

我在IIS上部署了一个Web应用程序.此Web应用程序正在使用想要访问Web.config的库.

示例:Foo.dll是部署在IIS上的Web应用程序.Foo.dll使用了Utility.dll

Foo.Utility namepsace中有一段代码,它想从Foo应用程序访问web.config并读取配置值

Configuration config = WebConfigurationManager.OpenWebConfiguration(null);
string cacheDir = config.AppSettings.Settings["abc"].Value;
Run Code Online (Sandbox Code Playgroud)

目前config.FilePath = C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config

将我的代码更改为:

Configuration config = WebConfigurationManager.OpenWebConfiguration(Assembly.GetCallingAssembly().Location);
string cacheDir = config.AppSettings.Settings["abc"].Value;
Run Code Online (Sandbox Code Playgroud)

现在我的Assembly.GetCallingAssembly().位置是:C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\62f5c902\849205ff\assembly\dl3\c28d4647\10e128d3_7449d001\foo.dll

有人可以帮我理解如何从使用IIS部署应用程序的地方读取web.config吗?

如需更多信息或问题不明确,请在下方发表评论.会更新它

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

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

构建表达式树来表示if-else

在完整条件表达式上使用ExpressionSerialization对表达式树进行反序列化,即三元运算符给出错误.如果我使用三元运算符,则会导致FullConditionExpression(系统不支持异常)

使用以下链接中的代码:

http://archive.msdn.microsoft.com/exprserialization

上述链接是否有最新版本?

http://metalinq.codeplex.com/

事后试过这个

public Expression<Func<object, string>> LabelCriteria { get; set; }

LabelCriteria = x =>
    {
      if (true)
          return "Cash";
      else      
          return " ";
    }
Run Code Online (Sandbox Code Playgroud)

表达式不支持if - else阻止.它给出了错误"因为带有语句体的lambda表达式无法转换为表达式树.还有其他方法可以做到这一点.

c# expression-trees

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

我怎样才能使 dll.config 成为 Nuget 包的一部分

由于 .NET 不支持 dll.config,并且在创建 nuget 包时 dll.config 不是包的一部分。

有没有办法可以将 dll.config 作为 nuget 包的一部分?如果有人使用我的 nuget 包,他们应该在其放置位置获取 *.dll 和 *.dll.config 文件

如果可能的话希望得到一些建议。

.net c# nuget nuget-spec

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

数据包捕获应用程序一旦启动,就不再具有其他应用程序的互联网连接

我已经在Android手机上安装了数据包捕获功能-运行Android版本8.0的Samsung Galaxy S7 edge。它不扎根

我遵循了所有步骤并安装了SSL证书。

这是应用程序链接

当我单击开始按钮以捕获应用程序的流量互联网连接时不起作用。Chrome可以在手机上使用。

我尝试无法访问互联网的应用程序是Amazon,Owl Cam,Arlo

知道我缺少什么设置或更改吗?

在stackoverflow上查找了类似的问题,没有任何答案

1)问题 1

android packet-capture packet-sniffers

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

将具有相同键的多个词典组合成一个具有值总和的字典

INPUT

字典1

"a","1"

"b","2"

字典2

"a","3"

"b","4"

字典3

"a","5"

"b","6"

OUTPUT(上面的词典的连接)

最后的字典

"a","9"

"b","12"

我写了一个伪代码:

  1. 创建一个Final空字典.
  2. 循环遍历词典列表.
  3. 遍历KeyValue对.
  4. 检查密钥是否存在于最终字典中.如果是,则将KeyValue对中的值添加到final字典中.如果没有,则将KeyValue对添加到字典中

由于这需要两个foreach循环,因此c#中有一个lync版本,并且不会抛出任何异常.

我在stackoverflow上提到的一些问题是将多个字典组合成一个字典

c# dictionary

4
推荐指数
2
解决办法
3684
查看次数

StackTrace 构造函数和获取方法名称对性能的影响

我的日志库中有这段代码

var stackTrace = new StackTrace();
string operationName = stackTrace.GetFrame(1).GetMethod().Name;
Run Code Online (Sandbox Code Playgroud)

根据我使用 PerfView 工具进行的性能分析,它显示为

图片来自 PerfView etl 文件

有谁知道我添加的代码对性能的影响?如果是,是否有其他方法可以获取方法名称而不会对性能产生更大的影响?

我目前在 4 核机器上以 1000 TPS 的速度运行它。我发现它使用了我的 CPU 的 15.1%

c# performance perfview

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

如何在单例类上使用Moq,以便我们只能测试业务逻辑并忽略日志记录

 public class SLogger
 {
     private const string SSchemasFileName = "sSchemas";
     private const string SLogsFileName = "sLogs";

     private static string logsDir = @"D:\Data\logs\local\";
     private static readonly Lazy<SLogger> instance = new Lazy<SLogger>(() => new SLogger());

     private ESC eSC;
     private AEL aEL;

     private SllLogger()
     {
         eSC= new ESC(logsDir , SSchemasFileName);
         aEL= new AEL(logsDir , SLogsFileName, EventLevel.Verbose);
     }

     public static SLogger Instance
     {
         get
         {
             return instance.Value;
         }
     }

     public void LogInformation()
     {
         // Some logic here
     }
}
Run Code Online (Sandbox Code Playgroud)

如何使用Moq框架来测试业务逻辑并忽略日志库代码?

例如,如果我有一些类具有如下所示的方法,并且我想使用Moq框架或任何其他框架对此方法进行单元测试,那么我如何才能使用这个单例类?

还有其他办法吗?

void foo() …
Run Code Online (Sandbox Code Playgroud)

.net c# singleton unit-testing moq

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