小编Fre*_*son的帖子

设计 - 使用Windsor时应在何处注册对象

我的应用程序中将包含以下组件

  • 数据访问
  • DataAccess.Test
  • 商业
  • Business.Test
  • 应用

我希望使用Castle Windsor作为IoC来粘合各层,但我对胶合的设计有点不确定.

我的问题是谁应该负责将物品注册到温莎?我有几个想法;

  1. 每个层都可以注册自己的对象.为了测试BL,测试平台可以为DAL注册模拟类.
  2. 每个层都可以注册其依赖项的对象,例如业务层注册数据访问层的组件.要测试BL,测试平台必须卸载"真正的"DAL对象并注册模拟对象.
  3. 应用程序(或测试应用程序)注册依赖项的所有对象.

有人可以用不同的途径帮助我提出一些想法和利弊吗?以这种方式利用Castle Windsor的示例项目的链接将非常有用.

c# castle-windsor inversion-of-control

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

使用Bouncy Castle签署CSR

我找不到任何描述如何使用BC签署CSR的代码/文档.作为输入,我将CSR作为字节数组,并希望以PEM和/或DER格式获得证书.

我已经走到了这一步

def signCSR(csrData:Array[Byte], ca:CACertificate, caPassword:String) = {
  val csr = new PKCS10CertificationRequestHolder(csrData)
  val spi = csr.getSubjectPublicKeyInfo

  val ks = new java.security.spec.X509EncodedKeySpec(spi.getDEREncoded())
  val kf = java.security.KeyFactory.getInstance("RSA")
  val pk = kf.generatePublic(ks)

  val (caCert, caPriv) = parsePKCS12(ca.pkcs12data, caPassword)

  val fromDate : java.util.Date = new java.util.Date // FixMe
  val toDate = fromDate // FixMe
  val issuer = PrincipalUtil.getIssuerX509Principal(caCert)
  val contentSigner = new JcaContentSignerBuilder("SHA256WithRSAEncryption").setProvider(BC).build(caPriv)
  val serial = BigInt(CertSerialnumber.nextSerialNumber)
  val certgen = new JcaX509v3CertificateBuilder(new X500Name(issuer.getName), serial.bigInteger, fromDate, toDate, csr.getSubject, pk)
Run Code Online (Sandbox Code Playgroud)

我无法确定从证书生成器获取以PEM或DER格式存储它.

还是我一起走错路?

java scala bouncycastle

30
推荐指数
3
解决办法
3万
查看次数

Visual Studio 2010中没有内存窗口

我在Windows 7旗舰版x64上安装了VS2010 Premium RTM版本.

在文档中,它们指的是Memory 1-4窗口,据说在Debug-> Windows-> Memory下.

我在VS(选项 - >调试)中启用了"启用地址级调试".

问题是在调试c ++程序期间我在Debug-> Windows下没有Memory菜单项.

在Debug-> Windows下我只有:Breakpoints Parallel Tasks Parallel Stacks Watch - > Locals Call Stack Threads

还有其他人经历过这个(希望能解决它)吗?

visual-studio-2010 visual-c++

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

在squeryl引用表名

我在mysql db中有一个名为group的表.当我将此表映射到squeryl时,我得到SQL语法错误,因为没有引用表名组(应该从`group`中选择*).

有什么方法可以告诉squeryl引用某些表名吗?

scala squeryl

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

DTLS中的会话ID(OpenSSL)

我正在尝试使用OpenSSL实现DTLS服务器.我可以通过,但当客户端和服务器协商时,我注意到服务器上的session_id为空.

检查代码,更具体地说是ssl_sess.c,session_id_length被明确设置为零,注释引用RFC4507.

我的问题是,在协商连接时,我可以使用什么ID来唯一标识客户端?

我注意到在客户端,会话ID似乎是从票证计算出来的,但这似乎不会在服务器上发生.

openssl dtls

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

特征中的覆盖函数

假设我有以下特征

trait Foo[T] {
  def overrideMe(other:Foo[T]) : Int
}
Run Code Online (Sandbox Code Playgroud)

我希望能够做到

class Bar extends Foo[Int] {
   override  def overrideMe(other:Bar) : Int = other.BarFn
}
Run Code Online (Sandbox Code Playgroud)

但它没有编译.原因是我希望overrideMe能够使用子类型的功能.我可以做点什么

class Bar extends Foo[Int] {
   override  def overrideMe(other:Foo[Int]) : Int = {
      other.asInstanceOf[Bar].BarFn
}
Run Code Online (Sandbox Code Playgroud)

但这看起来不太好.

是否有可能在特征中说可以用子类型覆盖虚函数?

编辑 @agilesteel这几乎可以工作,但如果我在另一个只依赖于特性Foo的类中有一个函数,我会遇到麻烦

class Test[T] {
    def callOverrideMe(a : Foo[T], b : Foo[T] ) : Int = a.overrideMe(b)
}
Run Code Online (Sandbox Code Playgroud)

我得到一个编译错误:类型不匹配; 发现b.type(底层类型为foo.Foo [T])需要a.SubType

scala

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

在WCF上桥接NSB

我试图发布一个发送到NSB主机的WCF服务.我已经查看了NSB示例中的WebServiceBridge示例,但无法弄清楚如何在WCF对应中使用NServiceBus.WcfService类.

我发现我可以让我的服务接口继承一个或多个IWcfService <TRequest,TResponse>,但由于服务类不能继承多个基类(WcfService),是否有可能让一个服务实现服务于多种消息类型?

c# wcf nservicebus

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

WCF成员资格提供者与自定义服务授权管理员w.自定义用户名验证器

我是WCF的新手,我正在尝试设置服务,并收到了两个不同的建议:

  1. 使用内置身份验证服务与成员资格提供程序(http://msdn.microsoft.com/en-us/library/bb398990 ( VS.100 ) .aspx)(自定义UserNamePasswordValidator与Silverlight 3.0).
  2. 使用自定义服务授权管理器使用自定义的用户名验证和"TransportWithMessageCredential"(http://msdn.microsoft.com/en-us/library/ms729794(VS.100).aspx)(在WCF服务应用程序的Architechture)

我可以看到的区别在于方法二,每次调用服务时都会验证用户凭据,而且我不必在服务器上保持会话状态,我喜欢.

我是否误解了这些概念,两者解决了不同的问题?

有人可以帮我理解这两个以及何时使用?

wcf wcf-security

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

在重新启动之前,让cron等待工作完成

我有一个cronjob,每隔一分钟执行一次,通常在几秒钟内运行,但有时会持续几分钟.

如果命令在下一分钟到来时已经运行,我需要cron不执行命令.

该行看起来像*/1****cmd

我试过这个*****ID = job1 FREQ = 1m AFTER = job1 cmd

但没有成功.

是可以用cron解决还是我必须实现锁定?

cron crontab

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