目前我正在使用单层架构.现在我想学习如何使用3层架构编写代码.请问您能给我一个简单的例子吗?
我对Entity Framework很新,我对过滤数据有疑问.
我有两个不同的Log实体,它们是:DiskLog
和NetworkLog
.这些实体都来自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工作.我有几种执行方式:
if …
我正在设置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"文件会导致在每次构建时创建它,并在每个项目文件的构建中动态引用它.
我需要找到一种方法来防止在每次构建时重新创建此文件.
如果你声明了一个结构:
struct EmptyResult
{
}
Run Code Online (Sandbox Code Playgroud)
EmptyResult
在实例中创建类型变量的结果是什么?
public Foo()
{
EmptyResult result;
}
Run Code Online (Sandbox Code Playgroud)
您是否期望在堆栈上进行分配,还是实际上是无操作?
我正在尝试为我的组织实施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) 我正在尝试在XSLT中格式化字符串,这些字符串需要处于pascal情况下才能正确地用于我正在使用的应用程序.
例如:
this_text将成为ThisText
this_long_text将成为ThisLongText
是否有可能将其设置在我可以向格式发送输入的位置,以便我不必多次重新创建格式?
是否可以创建一个像System.Diagnostics.Debug
类一样执行调试帮助的方法?
我正在寻找一种方法来构造一个方法,该方法在由定义的DEBUG条件编译符号编译的程序集调用时,导致操作,并且在没有定义符号的程序集调用时是无操作.
如果可能的话,我希望对调试方法的调用可以增加最小的开销或增加程序集的发布版本的大小.
为了澄清,调试方法应该在以发布模式编译的程序集中.对方法的调用应仅在从具有在方法调用范围中定义的DEBUG符号的程序集调用时生成操作.
有没有已知的原因FormatException
不继承ArgumentException
?无效格式似乎是一个非常具体的参数无效的情况,类似于ArgumentOutOfRangeException
.
当方法调用中的参数格式与相应的形式参数类型的格式不匹配时,抛出FormatException.例如,如果方法指定一个
String
由两个带嵌入句点的数字组成的参数,则将只包含两位数的相应字符串参数传递给该方法将导致抛出FormatException.
听起来像是ArgumentException
我的一个或派生课程的场景.
所有这些意味着您无法FormatException
在较大的ArgumentException
异常系列下处理,也无法识别导致异常的参数.
这个看似不合时宜的例外是否有任何理由存在?
我有一个使用Nhibernate和Linq2SQL的复杂服务器应用程序.每天大约3次Linq2sql代码生成"值不能为空"的异常.一旦发生这种情况,代码将始终生成异常.诊断和解决根本原因将是漫长的并且将引入不稳定性.
当前的"修复"是每小时重新调整应用程序池.但是,从问题发生到恢复发生之前,服务已经停止.我希望Web服务捕获异常并回收它自己的应用程序池.我希望所有其他Web请求在完成之前得到尊重.
编辑:故障位于负载平衡Web场上的两个服务器上.客户端不会因为此代码崩溃而从一台服务器切换到另一台服务器.
我不知道我错过了什么,但我真的不能参考
User.Identity
下OnActionExecuting(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)
有任何线索如何修复它?