我试图找到一种方法来使用Ninject将构造函数依赖注入到过滤器中.我发现许多文章描述了属性注入,现在建议不要这样做,但其余文章涉及到工厂,定位器,全局包装器或存根属性的复杂设置.
使用MVC允许你覆盖它的几乎任何操作部分,我认为这只是一个创建自己的过滤器提供程序的情况,就像你创建自己的依赖项解析器一样.
什么是现在正确的注射方式,或者如果你使用某些类型的过滤器与其他过滤器变得更容易?
public class UserValidationAttribute : ActionFilterAttribute
{
private IRepository repository;
public UserValidationAttribute(IRepository repository)
{
this.repository = repository;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个与数据库交互的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无扩展?
在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)
但是,当我尝试这样做时,我收到一个错误(显然是来自我的公司代理),表明我的凭据无法验证.我希望这最终会奏效,但也许我只是犯了一个简单的错误.
我很好奇地发现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的目标有何不同?
我有一个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
?
我刚刚完成了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) 任何人都可以帮助我解决DXTREME和PhoneGap之间的区别吗?
我有一个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) 我正在使用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
以下在我的机器上工作正常,不使用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
对象.
c# ×5
powershell ×2
asp.net-mvc ×1
chart.js ×1
cordova ×1
csv ×1
delphi ×1
delphi-xe4 ×1
devextreme ×1
filehelpers ×1
ios ×1
linq ×1
multitasking ×1
ninject ×1
phonejs ×1
rest ×1
selenium ×1
service ×1
string ×1
webdriver ×1
xamarin.ios ×1