小编Law*_*eld的帖子

Razor倒退了吗?

我需要一些令人信服的Razor View引擎.

据我所知,微软只是将内联代码重新引入标记; 是不是最初为了根除这个而引入的代码隐藏页面?

我假设(并希望)我错过了一些东西:)

.net c# asp.net asp.net-mvc razor

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

异步CTP错误 - 任务永远不会完成

首先是道歉:我无法将以下错误隔离到一个简单的控制台应用程序中.但是,在我相对简单的ASP.NET Web窗体应用程序中,以下代码将导致当前线程无限期地阻塞:

public class MyModule : IHttpModule
{
    public void Dispose()
    {
    }

    public void Init(System.Web.HttpApplication context)
    {
        context.BeginRequest += this.Context_BeginRequest;
    }

    private void Context_BeginRequest(object sender, EventArgs e)
    {
        Sleep().Wait();
        var x = 2; // This line is never hit.
    }

    private async Task Sleep()
    {
        await TaskEx.Run(() => System.Threading.Thread.Sleep(1000));
    }
}
Run Code Online (Sandbox Code Playgroud)

任务状态仍然是'WaitingForActivation'.有谁知道为什么会这样?

.net c# asp.net task-parallel-library async-ctp

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

添加未在其URL中指定SBT版本的SBT插件

Specs2没有在其URL中定义SBT版本:https://oss.sonatype.org/content/repositories/releases/org/specs2/specs2_2.9.2/1.12.3/

在尝试解决时,这会导致SBT出现问题......

[warn] ==== sonatype-snapshots: tried
[warn]   https://oss.sonatype.org/content/repositories/snapshots/org/specs2/specs2_2.9.2_0.12/1.12.3/specs2-1.12.3.pom
[warn] ==== sonatype-releases: tried
[warn]   https://oss.sonatype.org/content/repositories/releases/org/specs2/specs2_2.9.2_0.12/1.12.3/specs2-1.12.3.pom
Run Code Online (Sandbox Code Playgroud)

如何让SBT解析正确的URL?

scala sbt specs2

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

共同服务登记处

很长一段时间以来,我们很幸运有了公共服务定位器(CSL)来解决来自未知来源的服务.但是,从来没有任何与容器无关的解决方案首先注册这些服务.我们一直面临着必须将组合代码耦合到特定IoC容器的问题,此外,还致力于在整个应用程序中使用该容器.

我觉得我可能试图在这里实现不可能,但是有没有人对如何实现公共服务注册表(CSR)有任何想法?

我最初的想法是使用MEF来解析各种IContainerIntegrators(每个容器技术一个类),然后使用MEF来解析各种IXXXContainerBindings(每种技术的一个接口).然后,用户可以围绕容器绑定开发应用程序,只需将其绑定放入BIN目录即可实现插件体系结构.如果他们想要使用新的容器技术,那么他们只需要开发一个新的IContainerIntegrator类和附带的IXXXContainerBinding,然后他们将用它们来编写自己的绑定.在应用程序启动时,CSR使用ServiceLocatorAggregator类将所有容器实例聚合到单个CSL中.

我有这个工作,但面临以下问题:

  • 任何调用当前(不完整)容器的绑定都是不稳定的,因为之前的注册可能会被后续绑定覆盖.这包括需要解析对象以进行注册决策的绑定(即"如果存在则绑定它").
  • 可能存在两个绑定,它们暴露同一组服务.但是,我们希望"交织"这些注册.例如'我希望服务A和C来自绑定X,服务B和D来自绑定Y'.
  • 当自动连接所请求服务的依赖关系时,容器会自行解析服务.例如'container.Bind <This> .To <That>()'将自动注入来自'container'解析的服务的实现 - 而不是来自聚合服务定位器.

如果我完全忽略了这一点,请大声喊叫,但这不是依赖管理脱钩的解决方案吗?不是很好吗?我即将开始使用插件架构开展大型企业项目.我不想承诺特定的IoC容器.

(ps这个问题是关于容器不可知的组合,它支持发现.请不要进入关于SL与DI的争论.在组合中使用SL,这就是我在这里引用它的原因).

.net c# dependency-injection ioc-container inversion-of-control

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

TaskEx.Yield(的TaskScheduler)

上个月我问了以下问题,这导致我学到了TaskEx.Yield:

异步方法在第一次"等待"之前是否有昂贵的代码?

但是,我已经意识到这个方法实际上将所有后续代码提交给环境TaskScheduler.在真正的DI精神中,我们的团队同意尽可能避免使用环境实例,所以我想知道是否可以明确指定TaskScheduler使用?

像下面这样的东西会很棒:

public static YieldAwaitable Yield(TaskScheduler taskScheduler)
{
    return new YieldAwaitable(taskScheduler);
}
Run Code Online (Sandbox Code Playgroud)

但是,Async CTP的当前实现仅提供:

public static YieldAwaitable Yield()
{
    return new YieldAwaitable(SynchronizationContext.Current ?? TaskScheduler.Current);
}
Run Code Online (Sandbox Code Playgroud)

以下是否会提供可接受的有效替代方案?

await Task.Factory.StartNew(() => { }, CancellationToken.None, TaskCreationOptions.None, this.TaskScheduler);
Run Code Online (Sandbox Code Playgroud)

.net c# task-parallel-library async-ctp .net-4.5

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

Base64是否确定(Apache Commons lib或其他)?

我正在使用Apache Commons库中的Base64编码器.现在,我的运行时/ IDE会发生一些有趣的事情,或者他们对Base64编码(或Base64作为规范)的实现是不确定的:

val test = Base64.encodeBase64("hello".getBytes).toString
val test2 = Base64.encodeBase64("hello".getBytes).toString
val test3 = Base64.encodeBase64("hello".getBytes).toString
Run Code Online (Sandbox Code Playgroud)

以上每一个都产生不同的结果.这是预期的吗?我在Scala中写这个...

java base64 scala apache-commons

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

为什么JDK假设是预先安装但不是sbt中的Scala?

根据我的理解,SBT项目使用您机器上安装的JDK(虽然可以编译可能较旧版本的框架).换句话说,JDK作为项目的"环境依赖"继承; 假设它安装在开发人员的机器上.

但是,Scala lib/compiler/etc的特定版本被视为普通依赖项.它们是为您的项目下载的IE(尽管最终由SBT缓存以用于其他项目,如果它们需要相同的版本).

我的问题是:为什么SBT项目不使用环境的Scala安装,就像他们为JDK做的那样,而不是下载他们自己的副本?

scala sbt

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

自键入可以与抽象类型一起使用吗?

我试图在不使用泛型的情况下实现F-有界多态性.我还需要使用自我键入,因为我将引用this并期望将其键入为子类型.

trait MyTrait[T] { self: Self => // Compilation error: cannot reference 'Self'
   type Self <: MyTrait[T]

   def doSomethingWithSubtype() {
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

我可以很容易地使用类型参数(即泛型)来实现这一点,但是想知道我是否缺少某些内容来进行上述编译.你能用这种方式使用抽象类型吗?

类似的问题:

这些为类似问题提供了解决方法,让我相信以上是不可能的?

具有抽象类型而不是参数类型的F-束缚多态?

通过类型成员而不是类型参数进行F-限制量化?

generics scala scala-2.10

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

注入的依赖项是公共可访问还是私有?

是否应将依赖项存储到具有私有setter和public getter的私有字段或属性?这适用于构造函数DI.

为了清楚起见,在属性示例中,我不希望将这些添加到附带的接口,除非它有意义 - 即它们只在实现类型中可见:

interface IFoo {
  void DoSomething();
}

class Foo : IFoo {
  private readonly IService dependency;
  public Foo(IService dependency) {
    this.dependency = dependency;
  }
}

class Bar : IFoo {
  public Foo(IService dependency) {
    this.Dependency = dependency;
  }

  public IService Dependency { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

.net c# design-patterns dependency-injection

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

从元组列表中提取列表的惯用法

是否有简洁的方法在Scala中执行以下映射?

val listOfTuples: List[Tuple2[Foo, Bar]] = ???
val (foos, bars) = listOfTuples // foo:List[Foo], bar:List[Bar]
Run Code Online (Sandbox Code Playgroud)

我看到别人 mapList[Tuple[X, X]]List[List[X]],然后transpose在列表中,虽然这只是从同质类型参数组成的元组的工作.

scala tuples

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