小编Dav*_*d J的帖子

静态函数是否等效于C#中的静态Func成员?

看起来静态方法静态Func字段相同.我错过了什么,或者它们本质上是可以互换的(相同的足迹等)?

静态属性最终与另外两个示例相同,除了它包括"get"访问器的(最小)开销.

也许有点毫无意义,毫无顾忌地要问......但我喜欢理解"幕后"发生了什么,即使它并不是立即相关的.

可以肯定的是:我不打算将所有静态方法切换为lambda表达式(并让我的同事疯狂).但是,可能存在一些合理的情况,其中静态变量比编写方法更有意义.或许相反:说服某人使用静态方法而不是lambda表达式来使代码更具可读性或其他

另外,我很好奇是否有更好的方法来调查这些问题

我的考试

我将这个简单的例子放入LINQPad(v4.57.02,"使用/ optimize +编译"):

void Main()
{
    var hold = "this is the thing. it returns true";
    var held = "this is the one that returns false";

    Console.WriteLine(One.Check(hold));
    Console.WriteLine(One.Check(held));

    Console.WriteLine(Two.Check(hold));
    Console.WriteLine(Two.Check(held));
}

// Define other methods and classes here
class One
{
    public static bool Check(string value)
    {
        return value != null && value.Contains('.');
    }
}

class Two
{
    public static Func<string, bool> Check = v => v != …
Run Code Online (Sandbox Code Playgroud)

c# methods lambda static static-methods

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

以编程方式检查是否使用了CSS文件

有没有办法编写CSS审计脚本?我只需要文件级信息,而不是单个规则.看起来像页面必须实际渲染才能获得准确的信息......所以像Selenium这样的东西可能会有所帮助吗?

我已经看到有浏览器插件来审核CSS文件(例如这个StackOverflow问题,这篇A List Apart文章),但是手动审查每个页面的结果需要太长时间

背景

多年来,各种CSS文件已经渗透到我们的Web应用程序的模板标题中.当来自多个框架,插件等的重叠规则都争夺至高无上时,试图对元素进行样式化是一个巨大的痛苦.

作为整合/标准化尝试的一部分,我想将旧的引用移出网站模板并移入各个页面标题中,因此CSS规则的影响将仅限于它们被使用/需要的位置.

我认为最简单的方法是抓取网站并跟踪在哪里使用哪些CSS样式表.

UPDATE

无意的规则匹配是可能的,所以我开始认为我不能编写脚本.我们可能不得不逐页进行.即便如此,一些页面的样式可能依赖于相反的样式表的奇怪交集: - /

此外,我对这些静态CSS检查器持怀疑态度,特别是对于模板文件.ul > li.special直到运行时规则可能不匹配(可以在服务器端或javascript创建元素)

html css selenium web-scraping

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

IIS(如何?)IIS存储自定义应用程序池标识?

我有一个用于开发的应用程序池...我在我的凭据下运行它(所以我不必担心权限/访问问题).有两件事让我觉得我的凭据可能只是坐在一个文件(或注册表项)中...这令人担忧:

  • 当我更改密码时,我必须更新存储的凭据
  • 设置对话框有一个确认密码字段

如果IIS只是存储一些身份验证令牌,我希望只输入一次密码(因为身份验证是立即发生的).

有人知道我的凭据存储在哪里吗?它们是刚刚使用某些系统密钥加密,然后在应用程序池旋转时拉出并使用?

这是我输入身份凭证的对话框:

为应用程序池配置自定义标识

我从应用程序池的高级设置中打开该对话框:

应用程序池的高级设置

其他信息

Windows 7上的IIS 7.5

正在为其他应用程序池使用虚拟帐户,但这不是我在这里使用的:我使用的是实际的Windows帐户凭据

UPDATE

根据尼古拉斯 - 迪特里希的回应,我发现以下内容......

IIS 7.5的应用程序池凭据(和常规设置)存储在%systemroot%\System32\Inetsrv\config\applicationHost.config.

加密由AesProtectedConfigurationProvider处理,这是保护敏感配置信息的标准(?)方式(如数据库连接字符串或 - 你知道 - 密码)

以下是使用省略号(...)替换敏感/无关信息的相关部分:

<configProtectedData>
    <providers>
        <!-- … -->
        <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="…" />
    </providers>
</configProtectedData>

<system.applicationHost>
    <applicationPools>
        <add name="DefaultAppPool" queueLength="5000" managedRuntimeVersion="v4.0" />
        <add name="GeneralDev" queueLength="5000" autoStart="true">
            <processModel identityType="SpecificUser" userName="mydomain\myusername" password="[enc:IISWASOnlyAesProvider:…:enc]" />
        </add>
        <!-- …
Run Code Online (Sandbox Code Playgroud)

asp.net iis

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

开始...... SQL Server中的结束块:这个代码是对的吗?

我只想验证我在这里没有遗漏某些东西......所以请耐心等待.

我正在重写很多旧的存储过程,并继续看到类似于这样的IF语句:

begin
    if @someParameter <> 'ThisType'
    set @someCode = right(cast(@pYear as varchar(6)),2) + 'THIS'
end
Run Code Online (Sandbox Code Playgroud)

所以Begin ... End块只是包装(但不影响)IF语句,对吧?这是IF的一些较旧的语法还是什么?

写这篇文章的人在这份工作之前没有太多的SQL经验; 他主要在VB(pre -.NET)工作.也许这是来自其他语言的语法,所以他不小心这样写了(习惯)?

这是SQL Server 2005(代码是用于/为SQL Server 2000编写的),顺便说一句

就像我说的那样,我只是想把我的脑袋缠在这个意大利面上.欢迎任何想法/意见/有启发性的见解

谢谢

sql-server syntax

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