小编Jot*_*aBe的帖子

如何从数据库中获取连接字符串

我用SQL Server Management Studio创建了一个数据库,我现在想在我的C#应用​​程序中使用它.我需要连接字符串?

我在哪里可以找到连接字符串,我的数据库存储在哪里?

我是否必须发布它或类似的内容,还是在我的文档中?

using (var conn = new SqlConnection("your connection string to the database"))
Run Code Online (Sandbox Code Playgroud)

如何获取连接字符串?我在哪里可以找到将粘贴复制到上一节的连接字符串?

如何发布我的数据库以便Visual Studio可以获取它?然后我可以拉那里的连接字符串?

c# sql-server visual-studio

179
推荐指数
7
解决办法
32万
查看次数

"Bastard Injection"和"Poor Man's Injection"之间的真正区别是什么?

从".Net中的依赖注入"一书中我知道应该在应用程序的组合根处创建对象图,这对我来说在使用IoC容器时很有意义.

在我尝试使用DI时所见到的所有应用程序中,总有两个构造函数:一个具有依赖关系作为参数的构造函数和一个没有参数的"默认"构造函数,而这些构造函数又调用另一个"newing"所有的依赖关系,但在上述书中,这被称为"混蛋注射反模式",这就是我曾经知道的"穷人的注射".

现在考虑所有这些,我会说"穷人注射"只是不使用IoC容器而是在所述组合根上手动编码所有对象图.

所以我的问题是:

  1. 我是否正确理解了这些概念,还是完全偏离了轨道?
  2. 如果您仍然需要在IoC容器中注册所有依赖项,而不是在完全相同的组合根中手动编码,那么使用IoC容器的真正好处是什么?
  3. 如果我误解了"穷人的注射"究竟是什么,有人可以澄清一下吗?

谢谢

architecture oop dependency-injection

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

路径模板分隔符'/'不能连续出现 - 属性路由问题

配置与错误无关

这是我在App_Start/WebApiConfig.cs中对Web API的配置:

public static void Register(HttpConfiguration config)
    {
        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );.....
Run Code Online (Sandbox Code Playgroud)

这是我的global.asax类:

GlobalConfiguration.Configure(WebApiConfig.Register);
Run Code Online (Sandbox Code Playgroud)

这是错误

但是每当应用程序启动时,我都会遇到以下异常:

路径模板分隔符'/'不能连续出现.它必须由参数或文字值分隔

堆栈跟踪:

at System.Web.Http.Routing.RouteParser.Parse(String routeTemplate)
at System.Web.Http.Routing.DirectRouteFactoryContext.CreateBuilder(String template, IInlineConstraintResolver constraintResolver)
at System.Web.Http.Routing.DirectRouteFactoryContext.CreateBuilderInternal(String template)
at System.Web.Http.Routing.DirectRouteFactoryContext.CreateBuilder(String template)
at System.Web.Http.RouteAttribute.System.Web.Http.Routing.IDirectRouteFactory.CreateRoute(DirectRouteFactoryContext context)
at System.Web.Http.Routing.AttributeRoutingMapper.CreateRouteEntry(String prefix, IDirectRouteFactory factory, IReadOnlyCollection`1 actions, IInlineConstraintResolver constraintResolver, Boolean targetIsAction)
at System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, String prefix, IReadOnlyCollection`1 factories, IReadOnlyCollection`1 actions, IInlineConstraintResolver constraintResolver, Boolean targetIsAction)
at System.Web.Http.Routing.AttributeRoutingMapper.AddRouteEntries(SubRouteCollection collector, HttpControllerDescriptor controller, IInlineConstraintResolver …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net asp.net-web-api asp.net-web-api2

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

Serilog的例外解构

Serilog有一种方便的对象解构方法,如下例所示:

logger.Debug(exception, "This is an {Exception} text", exception);
logger.Debug(exception, "This is an {@Exception} structure", exception);
Run Code Online (Sandbox Code Playgroud)

第一行导致记录器将异常记录为纯文本(通过调用ToString()),第二行使记录器将异常属性写为单独的字段.但是这个重载呢:

logger.Debug(exception, "This is an exception", exception);
Run Code Online (Sandbox Code Playgroud)

这个作为第一个参数使用异常,它总是写成一个字符串.我想要做的是以结构化的方式启用日志记录异常.是否可以配置Serilog来实现这一目标?

UPDATE.我想这个问题会导致记录异常的另一个方面:如何确保使用异常属性来丰富消息(因此它们以结构化的方式记录到富散问件,如Elasticsearch),而无需将所有异常属性写入呈现的文本消息(所以纯文本记录器没有大量的异常细节).

.net c# logging exception serilog

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

将额外参数传递给jquery ajax promise回调

我需要将一个额外的参数传递.done给jquery ajax调用的promise回调:

$.post("MyUrl", JSON.stringify(data))
        .done(onMyUrlLoaded);
Run Code Online (Sandbox Code Playgroud)

标准回调,如下所示:

function onMyUrlLoaded(data, textStatus, jqXHR) { /* function code */ };
Run Code Online (Sandbox Code Playgroud)

但我需要将一个额外的参数传递给我的回调,如下所示:

function onMyUrlLoaded(data, textStatus, jqXHR, extraParam) { /* code */ };
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

注意:这个问题不是重复的,因为它特别是关于promise回调.除此之外,这个问题比被称为复制的问题还要早两年,并给出了更全面的答案,以及有关承诺的具体答案.

javascript ajax jquery promise

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

如何使用StoryBoard在iOS中添加水平线?

在我的应用程序中,我试图在两个标签之间创建一个定制/时尚的水平线.我在搜索引擎优化和谷歌搜索,但它只有代码.如何使用故事板添加水平线?

Android中,我使用XML设计了以下行.

在此输入图像描述

如何在iOS中创建相同的行?

iphone uiviewcontroller uiview ios ios5

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

敲除组件(不)绑定新内容

编辑问题和示例

我试图让Knockout组件在初始化后绑定,ko.applyBindings();这样我就可以动态添加自定义元素.

在我的原始帖子中,我提到通过ajax加载内容,但是当使用类似jQuery的东西将自定义元素添加到DOM时,我的问题就出现了append.

这是一个例子:

$(function() {

  // Register a simple widget:
  ko.components.register('like-widget', {
    template: '<div class="alert alert-info">This is the widget</div>'
  });

  // Apply bindings
  ko.applyBindings();


  // Wire up 'add' button:
  $('#btnAdd').on('click', function() {

    $('#addZone').append("<like-widget></like-widget>");


  });

});
Run Code Online (Sandbox Code Playgroud)
<link data-require="bootstrap-css@*" data-semver="3.2.0" rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<body>

  Here's a widget, declared inline:
  <like-widget></like-widget>

  <button id='btnAdd'>Add a new widget to the grey box:</button>
  <br/><br/>

  <div id='addZone' class="well">
    Widgets will be appended here
  </div>

  <p>When you run this …
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom-manipulation knockout.js

16
推荐指数
1
解决办法
5214
查看次数

带有路由属性的不明确的控制器名称:具有相同名称和不同命名空间的控制器,用于版本控制

我正在尝试添加API版本,我的计划是为不同命名空间中的每个版本创建一个控制器.我的项目结构如下所示(注意:每个版本没有单独的区域)

Controllers
 |
 |---Version0
 |      |
 |      |----- ProjectController.cs
 |      |----- HomeController.cs
 |
 |---Version1
       |
       |----- ProjectController.cs
       |----- HomeController.cs
Run Code Online (Sandbox Code Playgroud)

我正在使用RoutingAttribute作为路由.因此,Version0中的ProjectController具有路由功能

namespace MyProject.Controllers.Version0
{
   class ProjectController : BaseController
   {
     ...

     [Route(api/users/project/getProjects/{projectId})]
     public async GetProjects(string projectId) 
     {
       ...
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

和Version1中的ProjectController具有路由功能

namespace MyProject.Controllers.Version1
{
   class ProjectController : BaseController
   {
     ...

     [Route(api/v1/users/project/getProjects/{projectId})]
     public async GetProjects(string projectId) 
     {
      ...
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用该服务时,我得到404-NotFound.

如果我将控制器重命名为具有唯一名称(Project1Controller和Project2Controller),则路由可以正常工作.但是,我试图避免重命名以简化.

我按照此链接解决了问题,但没有帮助.我确实创造了一些领域但仍然没有成功.在global.aspx文件中添加路由逻辑没有帮助.命名空间也不起作用. http://haacked.com/archive/2010/01/12/ambiguous-controller-names.aspx/

上面的链接建议创建区域,但属性路由不支持按链接区域:http: //www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-在-Web的API-2

还有其他解决方案吗?RoutingAttributes有错误吗?

谢谢!

c# asp.net asp.net-web-api asp.net-web-api-routing asp.net-web-api2

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

将DateTime分组为5,15,30和60分钟

我试图将一些记录分为5分钟,15分钟,30分钟和60分钟:

SELECT AVG(value) as "AvgValue",
sample_date/(5*60) as "TimeFive"
FROM DATA
WHERE id = 123 AND sample_date >= 3/21/2012
Run Code Online (Sandbox Code Playgroud)

我想运行几个查询,每个查询将我的平均值分组为所需的时间增量.所以5分钟的查询将返回如下结果:

AvgValue  TimeFive
6.90      1995-01-01 00:05:00
7.15      1995-01-01 00:10:00
8.25      1995-01-01 00:15:00
Run Code Online (Sandbox Code Playgroud)

30分钟的查询将导致:

AvgValue  TimeThirty 
6.95      1995-01-01 00:30:00
7.40      1995-01-01 01:00:00
Run Code Online (Sandbox Code Playgroud)

datetime列的yyyy-mm-dd hh:mm:ss格式

我收到了我的datetime列的隐式转换错误.任何帮助深表感谢!

sql sql-server aggregate-functions sql-server-2008

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

"无法使用"属性路由"找到类型或命名空间名称'Route'

只是尝试将一些代码从一个工作项目拼接到另一个工作项目."from"项目使用"属性路由",您可以[Route(…)]在Web API控制器模块中嵌入指令,以指示HTTP消息应路由到哪个服务例程.

在"from"项目中正常工作,但在"to"项目中,我得到构建错误"找不到类型或命名空间名称'Route'(您是否缺少using指令或程序集引用?)"

我已经尝试将using"from"项目中的所有语句复制到"to"项目,但这没有明显的效果.没有MS文档表明需要NuGet包(甚至是using声明).这两个项目都应该是ASP.NET MVC 4.

(是的,我用config.MapHttpAttributeRoutes();声明更新了WebApiConfig.cs .)

有任何想法吗??

c# asp.net url-routing asp.net-mvc-4 asp.net-web-api

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