我有两个不同的实现服务,我想注入到控制器构造函数,取决于一个标准(目前标准是一个存储在会话中的简单值).
这是我现在得到的......
服务界面:
public interface IService
{
string GetSampleText();
}
Run Code Online (Sandbox Code Playgroud)
实施#1:
public class FirstService : IService
{
string GetSampleText()
{
return "First Service";
}
}
Run Code Online (Sandbox Code Playgroud)
实施#2:
public class SecondService : IService
{
string GetSampleText()
{
return "Second Service";
}
}
Run Code Online (Sandbox Code Playgroud)
在Windsor安装程序类中注册:
container.Register(AllTypes
.FromAssemblyInDirectory(new AssemblyFilter(HttpRuntime.BinDirectory))
.BasedOn<IService>()
.WithService.FromInterface()
.Configure(c => c.LifeStyle.Transient));
container.Kernel.AddHandlerSelector(new ServiceHandlerSelector());
Run Code Online (Sandbox Code Playgroud)
我已经实现了一个IHandlerSelector:
public class ServiceHandlerSelector : IHandlerSelector { ... }
Run Code Online (Sandbox Code Playgroud)
在这个IHandlerSelector实现的HasOpinionAbout方法中,我可以决定在SelectHandler方法中选择哪个处理程序(取决于session的值).
然后构造函数注入在控制器上正常工作:
public MyController(IService service) { ... }
Run Code Online (Sandbox Code Playgroud)
所以我得到了一个有效的解决方案,但我不确定这是否是最好的方法.
意见?建议?
非常感谢.
我看到我的nopCommerce网站有一个记录搜索:
ADw-script AD4-alert(202) ADw-/script AD4-
Run Code Online (Sandbox Code Playgroud)
虽然他们想要完成什么,但我有点好奇.我搜索了一下,看起来ADw-script AD4-是UTF7中的编码<script>.但为什么alert(202)呢?
他们只是检查漏洞吗?
记录了更多的黑客尝试,我在这里提出了一个关于他们的新问题:黑客企图,他们试图做什么以及如何检查他们是否成功?
这两个库之间的任何关系或区别.
我已经使用二进制编写器将值列表写入二进制文件.
我想知道是否有人可以告诉我如何从这个二进制文件中提取int16值列表?
提前致谢
using (var file = File.Create(fileName))
using (view.IncidentWriter = new BinaryWriter(file))
{
foreach (short dataItem in view.Data)
{
view.IncidentWriter.Write(dataItem);
}
}
Run Code Online (Sandbox Code Playgroud) 我们在其中使用了TList<TFunc<Boolean>>一些function ... of objects,现在又想要Remove()一些条目.但它不起作用,因为很明显你根本无法reference to ...可靠地比较这些东西.
这是一些测试代码:
program Project1;
{$APPTYPE CONSOLE}
uses
Generics.Defaults,
SysUtils;
type
TFoo = class
strict private
FValue: Boolean;
public
constructor Create();
function Bar(): Boolean;
end;
{ TFoo }
function TFoo.Bar: Boolean;
begin
Result := FValue;
end;
constructor TFoo.Create;
begin
inherited;
FValue := Boolean(Random(1));
end;
function IsEqual(i1, i2: TFunc<Boolean>): Boolean;
begin
Result := TEqualityComparer<TFunc<Boolean>>.Default().Equals(i1, i2);
end;
var
s: string;
foo: TFoo;
Fkt1, Fkt2: TFunc<Boolean>;
begin
try
Foo := …Run Code Online (Sandbox Code Playgroud) 有谁知道nodejs中的内存和线程模型是什么?
特别是ii++原子?它的行为ii是volatile在Java 1.5,Java 1.4,C中,还是根本没有?
我想使用二进制搜索算法来搜索用户在一个非常大的排序文件中输入的字符串.我无法将用户输入的字符串与位于文件中间行的字符串进行比较,以继续我的二进制搜索.
例如,如果用户的字符串是abcda,并且文件的字符串是abcza,则很明显用户的字符串小于文件的字符串.它是如何在java中实现的?如果您可以帮我提供示例代码,那将会很棒.
我有三个不同的图像(jpeg或bmp).我试图根据每个图像的颜色数来预测每个图像的复杂程度.我怎么能用Java实现它呢?谢谢.
更新: 这些代码不起作用..输出显示1312种颜色,即使它只是纯红色和白色
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.ArrayList;
import javax.imageio.ImageIO;
public class clutters {
public static void main(String[] args) throws IOException {
ArrayList<Color> colors = new ArrayList<Color>();
BufferedImage image = ImageIO.read(new File("1L.jpg"));
int w = image.getWidth();
int h = image.getHeight();
for(int y = 0; y < h; y++) {
for(int x = 0; x < w; x++) {
int pixel = image.getRGB(x, y);
int red = (pixel & 0x00ff0000) >> 16;
int green = (pixel & 0x0000ff00) …Run Code Online (Sandbox Code Playgroud) 我有一个方法,我接受一个模型和result_size.我尝试在这个方法中做的第一件事是:
array = model.logs.find_in_batches(:batch_size => result_size)
Run Code Online (Sandbox Code Playgroud)
但这不起作用; 相反,它返回"No Block Given(Yield)".我想我只是不熟悉块和收益率.如果有人能帮助我理解/解决这个问题,我将不胜感激!
提前致谢!
我正在使用Android 2.2开发Android应用程序,我的应用程序APK大小为22.5 MB,我想为三星平板电脑创建一个新版本.我收到以下错误:
INSTALL_FAILED_DEXOPT
我该如何解决这种错误?
java ×3
javascript ×2
android ×1
asp.net-mvc ×1
block ×1
c# ×1
colors ×1
comparison ×1
concurrency ×1
delphi ×1
delphi-2009 ×1
find ×1
httpclient ×1
image ×1
node.js ×1
ruby ×1
security ×1
unicode ×1
winforms ×1
xss ×1
yield ×1