小编bni*_*and的帖子

Stylecop告诉我添加这个关键字,但它是多余的 - 任何性能影响?

我使用Stylecop for Resharper,每当我在课堂上打电话时,Stylecop都会告诉我使用this关键字.但是IDE说这是冗余代码(确实如此),那么我为什么要使用this关键字呢?

冗余代码是否意味着它不需要(显然),编译器甚至不会对this关键字做任何事情?所以我假设这个关键字只是为了清晰起见.

此外,使用CLR,这样的事情会在各种语言中保持一致吗?因此,如果答案是编译器甚至没有触及this关键字并且它只是为了表示和清晰,那么VB.NET也是如此吗?我认为这一切都是为了清晰,因为stylecop会密切关注这一点,而Fxcop(我将在稍后使用)从技术角度关注我的代码质量.

谢谢

.net c# this

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

连接字符串应存储在n层asp.net应用程序中的何处

民间,

我有一个按名称空间划分的相当n层的ASP.NET项目,但我需要分为三个项目:数据层,中间层和前端。

我这样做是因为...

答:这似乎是正确的做法,并且

B)我在运行ASP.NET托管程序集的单元测试时遇到各种问题。

无论如何,我的问题是,您在哪里保存配置信息?

例如,现在,当实例化新的数据上下文时,我的中间层类(使用Linq到SQL)会自动从web.config中提取其连接字符串信息。

如果我的数据层在另一个项目中,可以/应该使用web.config作为配置信息吗?

如果是这样,单元测试(通常在单独的组件中)将如何提供soch配置信息?

感谢您的时间!

asp.net web-config data-access-layer 3-tier n-tier-architecture

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

如何从“ng test”配置中获取更详细的输出

简而言之,我正在寻找一种方法来获得更详细的输出ng test

我不是在寻找更多的测试输出,而是在寻找有关配置的更详细的反馈。

我正在尝试配置一个项目,当某些配置不正确时,我从 CLI 得到的反馈很少。

例如,在运行时ng test,我当前得到一个托管 jasmine 的 chrome 窗口,但找到了 0 个规格,并且http://localhost:9876/ karma_webpack /main.js404

karma-jasmine angular angular-devkit

5
推荐指数
0
解决办法
2389
查看次数

Angular v15 npm 运行测试在 CI/CD 机器中失败,并出现错误“Uncaught TypeError: __webpack_require__(...).context is not a function”

将 Angular 从 v14 更新到 v15 后,我看到 Angular CLI 从 src/test.ts 文件中删除了行。这些行是:

declare const require: {
    context(path: string, deep?: boolean, filter?: RegExp): {
        <T>(id: string): T;
        keys(): string[];
    };
};
Run Code Online (Sandbox Code Playgroud)

// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().forEach(context);
Run Code Online (Sandbox Code Playgroud)

这当然导致“npm run test”命令在本地失败,因为测试文件没有明确提供给 Angular。所以我将线路添加回来,一切都开始在本地工作。CI/CD 机器无法再运行“npm run test”命令。该命令将以下内容打印到标准输出:

29 11 2022 13:00:59.161:INFO [karma-server]: Karma v6.3.20 server started at http://localhost:9876/
29 11 2022 13:00:59.167:INFO [launcher]: Launching browsers ChromeHeadlessNoSandbox with concurrency unlimited
29 …
Run Code Online (Sandbox Code Playgroud)

testing angular cicd angular15

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

LINQ to SQL执行时间比SSMS SQL长50倍

我有一个使用Linq to SQL的asp.net应用程序.

应用程序中的一个查询超时(超过30秒执行).我增加了DataContext的CommandTimeout,它在45秒内完成.

我将Linq to SQL生成的SQL从SQL Profiler复制到SSMS,并使用我在我的应用程序中使用的相同用户凭据执行它,并且我得到了亚秒的执行时间.

我正在使用新的DataContext来执行查询,因此查询在其自己的事务中运行.

我的连接字符串如下所示:

Data Source=.\SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=False; user id=MyUser; password=@#$%^&*
Run Code Online (Sandbox Code Playgroud)

任何人都有任何想法,为什么我会得到这样不同的结果?

这是SQL:

exec sp_executesql N'SELECT [t1].[MatchCount], [t1].[RequestId], [t1].[Site], [t1].[Client]
FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY [t0].[RequestId]) AS [ROW_NUMBER], [t0].[MatchCount], [t0].[RequestId], [t0].[Site], [t0].[Client]
    FROM [dbo].[ReportingRequestsSubsetWithMatches] AS [t0]
    WHERE ([t0].[Finish] < @p0) AND ([t0].[Finish] > @p1)
    ) AS [t1]
WHERE [t1].[ROW_NUMBER] BETWEEN @p2 + 1 AND @p2 + @p3
ORDER BY [t1].[ROW_NUMBER]',N'@p0 datetime,@p1 datetime,@p2 int,@p3 int',@p0='2013-02-02 00:00:00',@p1='2013-02-01 00:00:00',@p2=10,@p3=10
Run Code Online (Sandbox Code Playgroud)

sql-server asp.net performance ssms linq-to-sql

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

你如何在TypeScript中模拟名义输入?

我的项目中有很多函数,它们以数字作为参数; 这个数字是数组索引的一半,另一半时间,它是一个光标位置(数组中两个条目之间的一个点).即使使用命名约定,这也会造成混淆.

我想强制执行以下功能正在采用预期的名义类型.

class Index extends Number {}
class CursorPosition extends Number {}

function getElement(i: Index) {}
function getRange(p1: CursorPosition, p2: CursorPosition) {}

const myIndex: Index = 6;
const myPosition: CursorPosition = 6;

getElement(1); // would like this to fail at compile time
getRange(2, 3); // would like this to fail at compile time
getElement(myPosition); // would like this to fail at compile time
getRange(myIndex, myIndex); // would like this to fail at compile time

getElement(myIndex); // would like this …
Run Code Online (Sandbox Code Playgroud)

casting type-conversion typescript

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

引用程序集后无法使用命名空间

伙计们,

我在Visual Studio 2010 SP1中使用ac#,多项目解决方案时遇到问题.

下面是解决方案结构:BNLib - amy个人实用工具库WidgetClientApp - asp.net应用程序前端WidgetConsoleUtilities - 控制台应用程序WidgetCore - 包含共享接口,类和枚举WidgetMiddleTier - 业务逻辑WidgetDataLayer - 通过linq到SQL的数据库访问.

问题在向控制台应用程序(WidgetConsoleUtilities)添加对中间层程序集(WidgetMiddleTier,其中包含名称空间Widget.MT)的引用之后,我在program.cs页面中添加了一个using指令:

使用Widget.MT;

然后我在using指令上收到编译器错误:

命名空间"Widget"中不存在类型或命名空间名称"MT"(您是否缺少程序集引用?)

我在同一个解决方案中的几个其他项目中使用此程序集没有问题.我在控制台应用程序中使用另一个程序集(WidgetCore,其中包含名称空间Widget.Core).

Web应用程序(Widget)使用这两个程序集没有问题.

我已经尝试删除和读取命名空间,关闭并重新打开Visual Studio 2010,清理构建,直接包括程序集而不是项目,并且nothng已经工作.

有任何想法吗?

你的帮助将大大减少!

最好,

布雷特

.net c# namespaces .net-assembly

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

外键列映射到多个主键

我有一个包含三个表的数据库

消息 - PK = MessageId
草稿 - PK = DraftId
历史 - FK = RelatedItemId

历史表有一个外键[RelatedItemId]映射到两个主键一个MessagesDrafts

这种关系有名字吗?

这只是糟糕的设计吗?

有没有更好的方法来设计这种关系?

以下是此问题的 CREATE TABLE 语句:

 CREATE TABLE [dbo].[History](
    [HistoryId] [uniqueidentifier] NOT NULL,
    [RelatedItemId] [uniqueidentifier] NULL,
    CONSTRAINT [PK_History] PRIMARY KEY CLUSTERED ( [HistoryId] ASC )
 )

CREATE TABLE [dbo].[Messages](
    [MessageId] [uniqueidentifier] NOT NULL,
    CONSTRAINT [PK_Messages] PRIMARY KEY CLUSTERED (    [MessageId] ASC )
 )


CREATE TABLE [dbo].[Drafts](
    [DraftId] [uniqueidentifier] NOT NULL,
    CONSTRAINT [PK_Drafts] PRIMARY KEY CLUSTERED ( …
Run Code Online (Sandbox Code Playgroud)

sql database database-design

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

在 Gradle 中,如何在所有任务完成后输出时间戳?

我有一个多项目 Gradle 项目,在根项目中,我有以下内容:

task timeStamp {
    doLast {
        Date now = new Date()
        println "All completed @ $now"
    }
}


allprojects {
    afterEvaluate {
        it.getTasks().each {
            println "finalize set for \"$it.name\""
            if (it.name != "timeStamp") {
                it.finalizedBy(':timeStamp')
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在运行时的输出中gradlew build,timeStamp 任务已运行,但它在其他一些任务之前运行。

如何在所有其他输出之后打印此时间戳?(BUILD SUCCESSFUL in ##s如果可能的话,我更喜欢它直接在输出之前)

gradle

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