小编gdy*_*tis的帖子

模板驱动和反应形式之间有什么实际区别?

我一直在阅读Angular2新的Forms API,似乎表单上有两种方法,一种是模板驱动形式,另一种是反应式或模型驱动型.

我想知道两者之间的实际差异,不是语法上的差异(显然),而是实际用途,哪种方法在不同情况下有更多好处.另外,选择其中一个是否有性能提升?如果是,为什么?

angular2-forms angular

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

类似于 Revealing Module Pattern 结构的 TypeScript 代码

我想将我编写的一些 JavaScript 代码转换为 TypeScript。作为 JavaScript 开发人员,我对 TypeScript 语法和思维方式比较陌生。

让我头疼的是我不得不将一些使用 Revealing Module Pattern 的代码转换为 TypeScript。

一个例子如下:

//JS Code
var obj;

//code...
(function(){
    function myFunction(){
        //do work
    }


    function MyOtherConstructor(){
        return {
            publicMethod: myFunction
        }
    }

    obj = new MyOtherConstructor();
})();

//use obj.publicMethod in code later
Run Code Online (Sandbox Code Playgroud)

我认为的一种解决方法是:

//TypeScript code
var obj;

class MyOtherConstructor {
        private callback: any;
        constructor(f: any){
            this.callback = f;
        }
        publicMethod(): any{
            this.callback();
        }
}
//code...
(() => {
    function myFunction(){
        //do work
        console.log("Called myFunction");
    }
    obj = new …
Run Code Online (Sandbox Code Playgroud)

javascript revealing-module-pattern typescript

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

Swashbuckle - 未显示从 BaseController 继承的 Web API 控制器

我有一个 OWIN,自托管的 Web API 项目,我想向其中添加 Swagger 文档和 Swagger UI。

我已经包含了 Swashbuckle.Core 包,并且我已经在Startup.cs.

configuration.EnableSwagger(s =>
{
    s.SingleApiVersion(Assembly.GetExecutingAssembly().GetName().Version.ToString().Replace('.', ' '), "MyApi").;
    s.IncludeXmlComments($@"{System.AppDomain.CurrentDomain.BaseDirectory}\MyApi.XML");
    s.DescribeAllEnumsAsStrings();
})
.EnableSwaggerUi(s =>
{
    // By default, swagger-ui will validate specs against swagger.io's online validator and display the result
    // in a badge at the bottom of the page. Use these options to set a different validator URL or to disable the
    // feature entirely.
    //c.SetValidatorUrl("http://localhost/validator");
    s.DisableValidator();
});
Run Code Online (Sandbox Code Playgroud)

现在,我有一个基本控制器和两个从基本控制器继承的附加控制器。不幸的是,我在 swagger 页面中没有看到控制器的名称和操作。

这是我的基本控制器:

public class BaseController : ApiController …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api swagger swagger-ui swashbuckle

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

Autofac - 方法注入示例

任何人都可以使用Autofac提供全方位的方法注入示例吗?

我检查了文档,但我发现很难理解这是如何工作的以及如何解决方法.

那么,好吧,如何注册所有内容非常简单,但我该如何使用呢?例如,我想要一个HttpContext注入的方法.所以,有这样的事情:

builder
  .Register<MyObjectType>()
  .OnActivating(e => {
    var dep = new HttpContextWrapper(HttpContext.Current);
    e.Instance.SetTheDependency(dep);
  })
  .InstancePerRequest();
Run Code Online (Sandbox Code Playgroud)

注意:这可以通过构造函数注入来实现,但我想了解方法注入方式.

问题是如何使用已解析的实例?是否可以使用方法注入通过接收依赖项的方法返回结果?行为不是在参数注入附近,而是以某种方式接近属性注入?

更新

@fknx基本上回答了我的问题:

方法注入只是意味着您的依赖项不作为构造函数参数传递或直接分配给属性,而是使用(setter)方法设置它

所以,如果我决定使用方法注入,该方法本质上就像一个setter(有点像Java setter方法),所以可以在整个类实体中使用这个依赖?

这样做的原因是什么以及它如何从房产注入中获益?

c# dependency-injection autofac

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