小编goo*_*ate的帖子

从源代码动态创建编译的.NET exe?

我需要将自定义的、唯一的静态字符串注入到基于 .NET 的 EXE 中。出于所有意图和目的,假设这是我的 PKI 私钥。

我对如何保护 C# 源代码中的私钥有一些想法,我的问题是如何获取 .CS 文件并基于它创建可执行文件?

.net c# compilation

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

可以在视图中使用OrderBy吗?

我的DBA告诉我,在SQL视图中不可能有一个OrderBy.

我遇到了需要按特定顺序查看视图的第三方组件的问题.这是真的?我无法在视图中排序吗?

sql sql-order-by sql-server-2008

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

具有intellisense的Powershell编辑器,我可以嵌入到我的程序中?

我有一个C#应用程序,并希望允许人们在我的应用程序中编写powershell代码.

有没有人知道有一个适合该法案的intellisense的powershell编辑器?

powershell powershell-ise powershell-2.0 powershell-sdk

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

可以强制开发人员处理特定的异常吗?

从本质上讲,我想要一个特殊形式的Interface异常,需要任何使用我的对象的人用特定的catch实现来包装它.

例

我有一个将数据发送到另一个主机的对象.我希望现实的实现需要一种方法来处理以下异常:

  • HostNotFoundException
  • InvalidUsernameException
  • AccountExpiredException
  • DataAlreadyExistsException

类似于如何使用一个Interface或一个Abstract类来强制在派生类中创建方法和属性,有什么方法可以强制消费者以我期望的方式实现异常处理?

在类似的说明中,我还想强制方法(通过Interface或Abstract创建)能够生成某些异常.当然它们可能未实现,但我想告诉那个开发人员(谁没有阅读文档)应该考虑他们.

目标

此异常检查的好处是可以实现更强大的错误处理.这将由消费者使用对象和对象创建者来完成.

解?

我能想到的唯一方法是T4模板,但这并不像我想的那样完整.我很乐意看到这种语言本身实现了.

.net c# programming-languages interface exception

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

如何在VS2010 Windows Installer中取消和回滚自定义操作?

我有一个自定义操作,通过Windows Installer从受信任的根证书添加/删除证书.我通过使用CustomAction实现了这一点

用户可能没有权限将证书添加到TrustedRoots,或者他们可能选择"取消",如何回滚以前的操作,并告诉安装程序我已取消该过程?

现在,Windows Installer即使失败也始终报告成功响应.

c# installer windows-installer custom-action

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

什么"终止字符"通常会确保后续的javascript运行?

是否有一系列字符可以在格式错误的javascript代码之后使用,以确保后续脚本将被执行?

我们的想法是,我们有单独的部门编写将放置在同一页面上的JavaScript代码."其他"组织因遗留坏代码而臭名昭着.由于我的代码将在页脚中(通过site.master),我可以使用哪些字符来确保(或更有可能)我的代码将被执行?

例

 // > "" ;  */ 
 alert("this code will always run, regardless of what happens before...");
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

客户拒绝环境中的"脚本".如何在C#应用程序中嵌入*.ps1?

我有以下示例Powershell脚本嵌入在我的C#应用​​程序中.

Powershell代码

    $MeasureProps = "AssociatedItemCount", "ItemCount", "TotalItemSize"

   $Databases = Get-MailboxDatabase -Status
    foreach($Database in $Databases) {

        $AllMBStats = Get-MailboxStatistics -Database $Database.Name    
     $MBItemAssocCount = $AllMBStats   |   %{$_.AssociatedItemCount.value} |  Measure-Object -Average   -Sum
     $MBItemCount =      $AllMBStats   |   %{$_.ItemCount.value} |  Measure-Object -Average  -Sum

        New-Object PSObject -Property @{
            Server = $Database.Server.Name
            DatabaseName = $Database.Name
            ItemCount = $MBItemCount.Sum
        }
    }
Run Code Online (Sandbox Code Playgroud)

Visual Studio为我提供了以下嵌入选项:

在此输入图像描述

我见过的每个PowerShell示例(Exchange上的 MSDN 和MSFT 开发人员中心)都要求我将Powershell命令切换为"位"并通过解析器发送.

我不想在我的应用程序中留下大量PS1文件,我需要一个没有其他"支持"PS1文件的二进制文件.

我怎样才能这样做myapp.exe是我的客户唯一看到的东西?

c# deployment powershell powershell-2.0 powershell-remoting

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

在System.Collections.Concurrent.ConcurrentDictionary中防御竞争条件

.NET ConcurrentDictionary容易受到可能导致意外数据的竞争条件的影响,如本MSDN文章底部所述. 我假设有几个因素需要考虑.

问:我应该如何编写不易受可能导致数据丢失的竞争条件的代码?

在我的场景中,我有一个输入流,它具有一个始终增加的索引(n ++).我的想法是,如果竞争条件发生,我可以检测丢失的数据并重新发送.另一方面,可能有一种更好的方法可以做到这一点,我不知道.

c# multithreading .net-4.0 race-condition concurrentdictionary

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

如何正确包装Dictionary <T,U>并公开枚举器?

我在我的对象中封装了一个Dictionary.我如何公开IEnumerable>?

之前

class HashRunningTotalDB : Dictionary<int, SummaryEntity>
{
         /... 
} 

// WORKS!
static void Main ()
{
       HashRunningTotalDB  tempDB = new HashRunningTotalDB();
       //todo: load temp DB

       foreach(var item in tempDB)
       {
           Console.Writeline(item.Key + " " + item.Value.SomeProperty);
       }
}
Run Code Online (Sandbox Code Playgroud)

后

class HashRunningTotalDB : IEnumerable
{
    Dictionary<int, SummaryEntity> thisHashRunningTotalDB = new Dictionary<int, SummaryEntity>();

      //QUESTION:  HOW DO I IMPLEMENT THE GENERIC ENUMERATOR HERE?
    // The following doesn't behave the same as the previous implementation
     IEnumerator IEnumerable.GetEnumerator()
    {
        return thisHashRunningTotalDB.GetEnumerator();
    }


    // The …
Run Code Online (Sandbox Code Playgroud)

c# ienumerable inheritance dictionary encapsulation

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

将ASN.1数据转换为公钥需要什么?例如,我如何确定OID?

此代码与反垃圾邮件工作中使用的DKIM签名验证有关.

我有一个byte[]来自s1024._domainkey.yahoo.comASN.1编码,但我不知道是否仅包含足够的信息来实现公钥.

基于这个类,看来我可以转换的ASN.1钥匙插入X509证书公钥,但我需要提供一个OID和一些ASN.1编码参数.

在此示例中,我有ASN1密钥为的元数据:

  1. RSA编码密钥(根据RFC3447,ASN.1 DER编码[ITU-X660-1997] RSAPublicKey)
  2. 与sha1 sha256哈希算法一起使用
  3. 使用与RFC3447的A.2节中的下表相关的OID(虽然我不知道如何将此信息转换为完整的OID)
/*
 * 1.2.840.113549.1
 * 
    MD2 md2WithRSAEncryption    ::= {pkcs-1 2}
    MD5 md5WithRSAEncryption    ::= {pkcs-1 4}
    SHA-1 sha1WithRSAEncryption   ::= {pkcs-1 5}
    SHA-256 sha256WithRSAEncryption ::= {pkcs-1 11}
    SHA-384 sha384WithRSAEncryption ::= {pkcs-1 12}
    SHA-512 sha512WithRSAEncryption ::= {pkcs-1 13}
 */
Run Code Online (Sandbox Code Playgroud)

代码示例

string pubkey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDrEee0Ri4Juz+QfiWYui/E9UGSXau/2P8LjnTD8V4Unn+2FAZVGE3kL23bzeoULYv4PeleB3gfmJiDJOKU3Ns5L4KJAUUHjFwDebt0NP+sBK0VKeTATL2Yr/S3bT/xhy+1xtj4RkdV7fVxTn56Lb4udUnwuxK4V5b5PdOKj/+XcwIDAQAB";
byte[] pubkeyByteArray = Convert.FromBase64String(pubkey);
AsnEncodedData aData = new AsnEncodedData(pubkeyByteArray);

// OID must not be null, but it is here.  What is it? …
Run Code Online (Sandbox Code Playgroud)

c# cryptography asn.1 dkim x509certificate

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