小编Pau*_*ner的帖子

3层架构 - 需要一个例子

目前我正在使用单层架构.现在我想学习如何使用3层架构编写代码.请问您能给我一个简单的例子吗?

architecture asp.net

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

如何动态构建实体框架查询?

我对Entity Framework很新,我对过滤数据有疑问.

我有两个不同的Log实体,它们是:DiskLogNetworkLog.这些实体都来自Log实体.以下是我的C#应用​​程序中的一些代码:

public class Log { ... }
public class DiskLog : Log { ... }
public class NetworkLog : Log { ... }

public enum LogType
{
    NotInitialized = 0,
    Disk,
    Network
}

public List<Log> GetWithFilter(
    Guid userKey, 
    int nSkip, 
    int nTake, 
    DateTime dateFrom = DateTime.MinValue, 
    DateTime dateTo = DateTime.MaxValue, 
    LogType logType = LogType.NotInitialized, 
    int computerId = 0)
{
    // need to know how to optimize ...

    return ...
}
Run Code Online (Sandbox Code Playgroud)

当然,我已经创建了工作应用程序和数据库表.我想要做的是使函数GetWithFilter工作.我有几种执行方式:

  1. if …

c# linq entity-framework filtering filter

11
推荐指数
2
解决办法
8096
查看次数

如何让TeamCity利用MSBuild的增量构建支持?

我正在设置TeamCity(从CruiseControl.NET迁移),我正在努力让它通过MSBuild执行增量构建.

我有一个小的.proj文件,其中包含一个基本的构建脚本,用于调用我的解决方案的构建,其中一些参数来自TeamCity.当我手动调用脚本时,MSBuild的增量构建功能会在后续运行中完全启动并跳过构建.

通过Team City调用此脚本时,构建日志每次都会显示一个干净编译的输出.我在构建期间观察了工作目录,并且可以看到前一个版本的输出没有消失.

我还通过远程访问服务器并从命令提示符运行MSBuild来手动调用该目录中的构建脚本.以这种方式运行它会在第一次调用后触发预期的增量构建.

即使从仪表板启动构建而未进行任何更改,也会发生完全重建.

我无法确定原因,但似乎有些事情让MSBuild感觉它正在获得新的变化,并导致它在每次运行时执行重建.我在TeamCity文档中看不到多少可以解释这一点 - 我的期望是如果源控制系统没有变化,它就不会更新工作文件夹.

TeamCity是否将一些参数传递给构建过程,从而触发重建?我可以查看这些参数吗?


检查了详细的MSBuild日志(/v:d命令行开关)之后,完成重建的原因是由于每个构建.NETFramework,Version=v4.0.AssemblyAttributes.cs<Agent>\temp\buildTmp目录中的文件都在更新.

此文件通常位于%TMP%\.NETFramework,Version=v4.0.AssemblyAttributes.cs; TeamCity正在更改本地临时目录环境变量以引用代理程序的临时文件夹.不幸的是,这个文件是Microsoft.Common.targets在缺席时由构建过程的一部分创建的.在每次构建之前删除"temp"文件会导致在每次构建时创建它,并在每个项目文件的构建中动态引用它.

我需要找到一种方法来防止在每次构建时重新创建此文件.

msbuild teamcity

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

在C#中新建一个空结构有什么作用?

如果你声明了一个结构:

struct EmptyResult
{
}
Run Code Online (Sandbox Code Playgroud)

EmptyResult在实例中创建类型变量的结果是什么?

public Foo()
{
    EmptyResult result;
}
Run Code Online (Sandbox Code Playgroud)

您是否期望在堆栈上进行分配,还是实际上是无操作?

c# clr struct

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

验证JWT签名时的SecurityTokenSignatureKeyNotFoundException

我正在尝试为我的组织实施OpenID Connect规范.我在测试依赖方应用程序中使用Microsoft的OpenID Connect的OWIN实现来验证我的协议实现.

我已经公开了以下元数据文档:

{
  "issuer": "https://acs.contoso.com/",
  "authorization_endpoint": "http://localhost:53615/oauth2/auth",
  "token_endpoint": "http://localhost:53615/oauth2/token",
  "userinfo_endpoint": "http://localhost:53615/connect/userinfo",
  "jwks_uri": "http://localhost:53615/connect/keys",
  "ui_locales_supported": [
    "en-GB"
  ]
}
Run Code Online (Sandbox Code Playgroud)

签名密钥作为此文档公开:

{
  "keys": [
    {
      "n": "xpXxl3M-YkZlzQJdArO1TfOGT2no-UL4dbZ7WuSCNIsSfyGDaqUXjMMHNyq9yD3vp-NCyk8kmn7d5XqHufnceXJM8q4xTrhN3lvywdBSbR-dwXsA-B-MJVgfiK0d_z-mxP9ew2Hj9-KkWbWCzsswlWp3gZ4mB4RGutB1IRSzXVIbvZ-MtKUb6XUDU4LDb_c1xCEXWZxhR-o1a1dLfObH2hHJ-w5y6odGlKtOFx4i4h0u7-Oj5R6k5b2YXEHM0IuYeN0u0sQvrTecokntGzPrvhnKy69I7Z_az5rC5kgloh25D9lTbe4vcRU7FXlYCFYDZsT0_IkGIXRi7brOS4f1ow",
      "e": "AQAB",
      "kty": "RSA",
      "use": "sig",
      "alg": "RS256",
      "kid": "F8A59280B3D13777CC7541B3218480984F421450"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

使用JwtSecurityToken类及其关联的处理程序生成标识令牌X509SigningCredentials.此代码表示如何构造令牌并将其作为响应数据的参数返回给调用系统.

var credentials = new X509SigningCredentials(cert); // My certificate.
var issuedTime = DateTime.UtcNow;
var expiresTime = issuedTime.AddMinutes(5);
var epoch = new DateTime(1970, 01, 01, 0, 0, 0);

var claims = new[]
{
    new Claim("sub", Guid.NewGuid().ToString()),
    new …
Run Code Online (Sandbox Code Playgroud)

c# x509certificate jwt katana openid-connect

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

如何在XSLT中将字符串格式化为Pascal案例?

我正在尝试在XSLT中格式化字符串,这些字符串需要处于pascal情况下才能正确地用于我正在使用的应用程序.

例如:

this_text将成为ThisText
this_long_text将成为ThisLongText

是否有可能将其设置在我可以向格式发送输入的位置,以便我不必多次重新创建格式?

string xslt pascalcasing string-formatting

10
推荐指数
2
解决办法
5492
查看次数

是否可以在.NET中创建仅调试方法?

是否可以创建一个像System.Diagnostics.Debug类一样执行调试帮助的方法?

我正在寻找一种方法来构造一个方法,该方法在由定义的DEBUG条件编译符号编译的程序集调用时,导致操作,并且在没有定义符号的程序集调用时是无操作.

如果可能的话,我希望对调试方法的调用可以增加最小的开销或增加程序集的发布版本的大小.

为了澄清,调试方法应该在以发布模式编译的程序集中.对方法的调用应仅在从具有在方法调用范围中定义的DEBUG符号的程序集调用时生成操作.

.net debugging

9
推荐指数
2
解决办法
1304
查看次数

为什么FormatException不从ArgumentException继承?

有没有已知的原因FormatException不继承ArgumentException?无效格式似乎是一个非常具体的参数无效的情况,类似于ArgumentOutOfRangeException.

该类MSDN文章指出:

当方法调用中的参数格式与相应的形式参数类型的格式不匹配时,抛出FormatException.例如,如果方法指定一个String由两个带嵌入句点的数字组成的参数,则将只包含两位数的相应字符串参数传递给该方法将导致抛出FormatException.

听起来像是ArgumentException我的一个或派生课程的场景.

所有这些意味着您无法FormatException在较大的ArgumentException异常系列下处理,也无法识别导致异常的参数.

这个看似不合时宜的例外是否有任何理由存在?

.net exception argumentexception formatexception

9
推荐指数
2
解决办法
964
查看次数

如何以编程方式回收.net Web应用程序自己的apppool?

我有一个使用Nhibernate和Linq2SQL的复杂服务器应用程序.每天大约3次Linq2sql代码生成"值不能为空"的异常.一旦发生这种情况,代码将始终生成异常.诊断和解决根本原因将是漫长的并且将引入不稳定性.

当前的"修复"是每小时重新调整应用程序池.但是,从问题发生到恢复发生之前,服务已经停止.我希望Web服务捕获异常并回收它自己的应用程序池.我希望所有其他Web请求在完成之前得到尊重.

编辑:故障位于负载平衡Web场上的两个服务器上.客户端不会因为此代码崩溃而从一台服务器切换到另一台服务器.

asp.net iis-7

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

无法访问OnActionExecuting下的User.Identity(ActionExecutingContext filterContext)

我不知道我错过了什么,但我真的不能参考 User.IdentityOnActionExecuting(ActionExecutingContext filterContext)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using System.Web.Routing;

.....

    public class RealUserAttribute : ActionFilterAttribute
    {
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                 /// if (User.Identity.IsAuthenticated)
Run Code Online (Sandbox Code Playgroud)

有任何线索如何修复它?

.net c# asp.net-mvc authorization authorize-attribute

9
推荐指数
2
解决办法
5005
查看次数