我正在尝试在IEnumerable上编写一个扩展方法,它只适用于值类型和字符串.
public static string MyMethod<T>(this IEnumerable<T> source) where T : struct, string
Run Code Online (Sandbox Code Playgroud)
但是'string'不是有效的约束,因为它是一个密封的类.
有没有办法做到这一点?
编辑:
我实际上要做的是为动态构造的SQL中的"IN"子句准备一个值列表.
我有很多代码实例,例如以下我要清理的代码:
sb.AppendLine(string.Format("AND value IN ({0})", string.Join(",", Values.Select(x => x.ToSQL()).ToArray())));
Run Code Online (Sandbox Code Playgroud)
ToSQL()具有处理SqlInjection的代码.
我收到以下错误:
Error: [$injector:unpr] Unknown provider: nProvider <- n
Run Code Online (Sandbox Code Playgroud)
我知道这是由缩小过程引起的,我理解为什么.但是,是否有一种简单的方法可以确定哪个文件实际导致了问题?
我最近加快了Knockout的速度,我认为这是一个很棒的框架.但是我有一个问题.
我发现在非平凡的绑定案例中,我有javascript代码片段爬进我的视图(标记).事实上,Knockout文档中的不少代码示例也证明了这一点.
这是否会使Knockout本身具有突兀性?
我应该接受它是什么而不是在实践中担心?
或者我是否应该使用任何模式/技术来使Knockout不引人注目?
我有一个基本实体类MyCompany.Core.Model.User,用于User实体的公共属性:
public class User
{
public string Username { get; set; }
public string Usercode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我还有一个基本映射类MyCompany.Core.Model.UserMap来为基类设置代码的第一个映射User:
public class UserMap<TUser> : EntityMapBase<TUser>
where TUser : User
{
public UserMap()
{
// Primary Key
this.HasKey(t => t.Usercode);
// Table & Column Mappings
this.ToTable("Users");
this.Property(t => t.Username).HasColumnName("Username");
this.Property(t => t.Usercode).HasColumnName("UserCode");
}
}
Run Code Online (Sandbox Code Playgroud)
在一个单独的程序集中,我有一个派生类MyCompany.Model.User,User它继承自基类并使用一些其他属性扩展它:
public class User : Core.User
{
public string Surname { get; set; } …Run Code Online (Sandbox Code Playgroud) inheritance entity entity-framework ef-code-first entity-framework-6
我有一个窗口,在关闭之前我刷新底层页面.
if(opener && typeof(opener.Refresh) != 'undefined')
{
opener.Refresh();
}
Run Code Online (Sandbox Code Playgroud)
如果我离开原始的开始页面,此代码将抛出"权限被拒绝"错误.
调试代码显示typeof(opener.Refresh)等于"未知"而不是预期的"未定义".
据我所知,"未知"不是其中一个返回值typeof,那么该值的返回方式和原因是什么?
更多的信息
我通过将检查更改为以下来避免错误:
if(opener && typeof(opener.Refresh) == 'function')
Run Code Online (Sandbox Code Playgroud)
但是这样的例子(在javascript中检测未定义的对象属性)似乎并未将"未知"因素纳入等式中.
我目前正在使用Visual Studio Web Essentials来捆绑和缩小我的CSS和JavaScript文件.
目前,我手动创建一个版本号的包(如mybundle-1.0.0.css时被推到生产,以避免缓存问题).每次对源进行更改时,我还必须手动更改软件包文件版本号.
Web Essentials捆绑中是否存在我可能忽略的任何类型的自动版本控制功能?
理想的工作流程是:
这可能吗?
如果没有,我很乐意听到有关更好的开发人员工作流程的任何建议.
我目前正在评估Durandal在企业ASP.NET MVC应用程序中的使用.
但是,Durandal使用的默认约定似乎与我习以为常的MVC约定相冲突.
John Papa的HotTowel MVC模板非常棒,但是这也似乎通过将内容放在App文件夹中来"消除"MVC惯例而转向Durandals.
我对这些约定的几个问题是:
RazorViewEngine.我宁愿保持每个元素包含在适当的MVC约定中,例如
/Controllers/
---- HomeController
---- AdminController
/Scripts/
---- durandal/
---- viewmodels/
-------- Home
-------- Admin
/Views/
---- Home
---- Admin
Run Code Online (Sandbox Code Playgroud)
我的问题是:
是否可以配置Durandal来实现上述(或类似的)?
冒险脱离默认的Durandal惯例是否明智?
这样做有什么潜在的问题?
见jsFiddle.
<table>
<tr>
<td>
<div>
Hello World
</div>
</td>
</tr>
</table>
html, body {
height:100%;
background-color:steelblue;
margin:0;
}
table {
height:100%;
border:1px;
}
td {
border:1px;
}
tr {
background-color: green;
}
div {
background-color:salmon;
height:100%;
}
Run Code Online (Sandbox Code Playgroud)
在Chrome 50之前,高度为100%的表格也会隐式将高度100%应用于其表格单元格.
这是Firefox和IE版本<11 中长期存在的错误 .Chrome和Safari总是将隐含的百分比高度传递给单元格.
根据规格,正确的行为是什么?这是由设计引入的吗?
编辑: Chromium Bug报告
我正在尝试将用户CONTEXT_INFO代码从存储过程传递到DELETE触发器以进行表审计.
一切正常,但是我注意到审计表中保存的用户代码的长度不正确.
以此脚本为例......
declare @userCode varchar(50)
set @userCode = 'TestUser'
declare @binary_userCode varbinary(128)
set @binary_userCode = cast(@userCode as varbinary(128))
set CONTEXT_INFO @binary_userCode
declare @temp_userCode varchar(50)
set @temp_userCode = (select cast(CONTEXT_INFO() as varchar(50)))
--set @temp_userCode = rtrim(ltrim(@temp_userCode))
select @userCode, len(@userCode), @temp_userCode, len(@temp_userCode)
set CONTEXT_INFO 0x
Run Code Online (Sandbox Code Playgroud)
结果:
len(@userCode)= 8
len(@temp_userCode)= 50
为什么@temp_userCode变量的长度为50,如何将其修剪回原始长度以正确存储?
更多的信息:
运行SQL Server 2005,但该解决方案需要在2005年以后的所有版本中运行.
标记Angular指令的推荐做法是什么?
除了html验证之外,使用" data-" 为内置和我自己的自定义指令添加前缀还有其他好处吗?
还是不必要的混乱?
angularjs ×2
javascript ×2
architecture ×1
asp.net-mvc ×1
c# ×1
chromium ×1
constraints ×1
context-info ×1
conventions ×1
css ×1
durandal ×1
entity ×1
generics ×1
hottowel ×1
html ×1
inheritance ×1
knockout.js ×1
minify ×1
sql-server ×1
string ×1
typeof ×1
value-type ×1
varbinary ×1
varchar ×1