小编sha*_*p00的帖子

使用Ninject过滤构造函数注入

我试图找到一种方法来使用Ninject将构造函数依赖注入到过滤器中.我发现许多文章描述了属性注入,现在建议不要这样做,但其余文章涉及到工厂,定位器,全局包装器或存根属性的复杂设置.

使用MVC允许你覆盖它的几乎任何操作部分,我认为这只是一个创建自己的过滤器提供程序的情况,就像你创建自己的依赖项解析器一样.

什么是现在正确的注射方式,或者如果你使用某些类型的过滤器与其他过滤器变得更容易?

 public class UserValidationAttribute : ActionFilterAttribute
 {
    private IRepository repository;

    public UserValidationAttribute(IRepository repository)
    {
        this.repository = repository;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc ninject

11
推荐指数
2
解决办法
3464
查看次数

有哪些C#工具可用于触发,排队,确定相关任务的优先级

我有一个与数据库交互的C#服务应用程序.它最近从.NET 2.0迁移到.NET 4.0,因此我们可以使用大量新工具.

我正在寻找编程方法或工具/库的指针来处理定义任务,配置他们依赖的任务,排队,优先排序,取消等.

有各种类型的服务:

  • 数据(用于检索和更新)
  • 计算(用数据计算结果填充一些表)
  • 报告

这些服务通常彼此依赖并且按需触发,即报告任务,其中可能包含代码,例如

if (IsSomeDependentCalculationRequired())
    PerformDependentCalculation();  // which may trigger further calculations
GenerateRequestedReport();
Run Code Online (Sandbox Code Playgroud)

此外,任何数据修改都可能Required在某些计算报告服务上设置标志(因此报告在完成生成之前可能已过期).任务的长度从几秒到几分钟不等,并在交易中执行.

到目前为止,这已经很好用了,但它的扩展性不好.有一些基本的设计问题,我希望重写这部分代码.例如,如果两个用户在相似时间请求相同的报告,则依赖任务将被执行两次.此外,目前无法取消正在进行的任务.维护依赖任务很难.

我不是在寻找有关如何实施修复的建议.相反,如果我从头开始使用.NET 4,那么我正在寻找指向我将用于此类要求的工具/库的指针.这是Windows Workflow的一个很好的候选者吗?这是期货的用途吗?我应该看看还有其他图书馆吗?我应该阅读的书籍或博客文章?

编辑:关于什么的Rx无扩展

c# service multitasking

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

Invoke-WebRequest GetSystemWebProxy()

在PowerShell 2.0下,我知道您可以通过执行以下操作来设置您想要使用的代理,而无需知道确切的代理设置:

$proxy = [System.Net.WebRequest]::GetSystemWebproxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是,如果我不知道代理设置可以使用上面的内容并将其与PowerShell 3.0结合使用Invoke-WebRequest.这是我希望能够做到的:

$proxy = [System.Net.WebRequest]::GetSystemWebproxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials

$WS.Proxy = $proxy

$login = Invoke-WebRequest https://website.com/login_form.html -SessionVariable WS
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这样做时,我收到一个错误(显然是来自我的公司代理),表明我的凭据无法验证.我希望这最终会奏效,但也许我只是犯了一个简单的错误.

powershell powershell-3.0

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

Delphi XE4和Xamarin Monotouch如何区分iOS?

我很好奇地发现Delphi XE4现在以iOS为目标.Monotouch和Delphi XE-4以iOS平台为目标的主要区别是什么?

如果我理解正确,Xamarin Monotouch通过为iPhone Cocoa Touch库提供C#包装来瞄准iOS开发.您仍然使用XCode Interface Builder来生成用户界面,因此您需要了解iOS概念,例如UIViews或Outlets和Actions,它们与使用C#开发WinForms或WPF完全不同.

Delphi-XE4方法的工作方式是否相同?它是否为iPhone库提供Delphi包装器?

此外,从界面构建的角度来看,它的界面构建器是否与XCode界面生成器类似,以及相同的本机控件和概念?Delphi开发人员针对iOS而不是Windows的目标有何不同?

delphi xamarin.ios ios delphi-xe4

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

Selenium WebDriver访问子元素

我有一个div唯一的ID.在那之下div有一堆span元素className=foo.有几个span元素,className=foo但每个元素都是独一无二的div(如果清楚的话).所以,我的硒代码首先获取独特div的网络元素,然后尝试采取元素和类的名称得到span像这样

element = sDriver.findElement(By.id("c_"+cID)); 
String sTest = element.findElement(By.className("actions")).getText();
Run Code Online (Sandbox Code Playgroud)

在第二行,它每次都抛出一个异常

org.openqa.selenium.StaleElementReferenceException: Element not found in the cache - perhaps the page has changed since it was looked up
Command duration or timeout: 22 milliseconds
Run Code Online (Sandbox Code Playgroud)

我是否误解了如何span从一个独特的东西中获得它div

selenium webdriver selenium-webdriver

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

如何将依赖注入应用于抽象工厂

我刚刚完成了Mark Seemann的书籍Dependency Injection in .NET,现在我正在尝试重构一些遗留代码.(在此阶段,我不依赖于任何特定的DI容器,而只是尝试将所有依赖项移动到一个位置).

我正在查看以下工厂类,它ArchiveType通过读取存档的前几个字节来确定archiveReader.GetArchiveType(),然后返回ArchiveRestorer基于ArchiveType枚举的实例.

public class ArchiveRestorerFactory : IArchiveRestorerFactory
{
    public ArchiveRestorer Create(ArchiveReader archiveReader)
    {
        ArchiveType type = archiveReader.GetArchiveType();
        switch (type)
        {
            case ArchiveType.CurrentData:
                return new CurrentDataArchiveRestorer(archiveReader);
                break;
            case ArchiveType.HistoricalData:
                return new HistoricalDataArchiveRestorer(archiveReader);
                break;
            case ArchiveType.AuditTrail:
                return new AuditTrailArchiveRestorer(archiveReader);
                break;
            default:
                throw new Exception("ArchiveRestorerFactory error: Unknown value for ArchiveType.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何重构这个,以便该类不依赖于具体的类型CurrentDataArchiveRestorer,HistoricalDataArchiveRestorer并且AuditTrailArchiveRestorer

我应该将三个具体的恢复器移动到工厂的构造函数中吗?

public ArchiveRestorer Create(ArchiveReader archiveReader, 
    ArchiveRestorer currentDataArchiveRestorer, 
    ArchiveRestorer historicalDataArchiveRestorer, …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection

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

DXTREME和PhoneGap之间的区别

任何人都可以帮助我解决DXTREME和PhoneGap之间的区别吗?

cordova phonejs devextreme chart.js

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

有效的方式来存储在字符串中的unindent代码行

我有一个string[]包含代码.每行包含一些前导空格.我需要在不改变现有格式的情况下尽可能"取消"代码.

例如,我的内容string[]可能是

                                         public class MyClass
                                         {
                                             private bool MyMethod(string s)
                                             {
                                                 return s == "";
                                             }
                                         }

我想找到一个相当优雅和有效的方法(LINQ?)来转换它

public class MyClass
{
    private bool MyMethod(string s)
    {
        return s == "";
    }
}

要清楚我正在寻找

IEnumerable<string> UnindentAsMuchAsPossible(string[] content)
{
    return ???;
}
Run Code Online (Sandbox Code Playgroud)

c# linq string

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

FileHelper转义分隔符

我正在使用FileHelper 2.0来解析我的csv数据.filehelper有没有可以正确处理转义分隔符的选项?它可以将字段标识为数据而不是分隔符.

我们的csv格式:使用\来转义逗号(,)

示例数据:

姓名,姓氏

尼科\,文件,opeka

当前代码:

[DelimitedRecord(",")] 
public class contactTemplate
{
  public string firstName;
  public string lastName;
}
Run Code Online (Sandbox Code Playgroud)

我如何获得firstName = nico,le和lastName = opeka.FileHelpers按逗号分割,现在返回:

firstName - > nico \

lastName - >,le,opeka

c# csv filehelpers

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

如何使Invoke-RestMethod使用默认Web代理?

以下在我的机器上工作正常,不使用Web代理.

return Invoke-RestMethod 
   -Uri $server$url 
   -ContentType $contentType 
   -Headers $headers 
   -Method $method 
   -UseDefaultCredentials 
Run Code Online (Sandbox Code Playgroud)

注意:这$server$url是一个https地址,类似于https://somewhere.example.com/api/data

现在我试图让它在企业环境中工作,但我收到401错误.

我认为这是因为有一个使用proxy.pac文件定义的公司代理.我已经确认我可以$server$url从Internet Explorer 获取URI.要使Invoke-RestMethod命令使用相同的设置,我需要做什么?

我试过添加-proxy参数

$proxy = [System.Net.WebRequest]::GetSystemWebProxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials

return Invoke-RestMethod 
    -Uri $server$url 
    -ContentType $contentType 
    -Headers $headers 
    -Method $method 
    -UseDefaultCredentials 
    -Proxy $proxy 
    -ProxyUseDefaultCredentials
Run Code Online (Sandbox Code Playgroud)

但是-Proxy参数期望URI不是IWebProxy对象.

rest powershell

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