我有一个简单的LINQ扩展方法...
public static IEnumerable<string> SplitOnLength(this string input, int length)
{
int index = 0;
while (index < input.Length)
{
if (index + length < input.Length)
yield return input.Substring(index, length);
else
yield return input.Substring(index);
index += length;
}
}
Run Code Online (Sandbox Code Playgroud)
这需要一个字符串,并将其切换为不超过给定长度的字符串集合.
这很好 - 但我想进一步.它将文字分成两半.我不需要它来理解任何复杂的东西,我只是希望它能够在早期切断一个字符串,如果切割它将在length文本中间切割(基本上任何不是空白的东西).
但是我很害怕LINQ,所以我想知道是否有人知道如何解决这个问题.我知道我要做什么,但我不知道如何处理它.
所以我要说我有以下文字.
这是我将通过字符串拆分器传递的示例文本块.
我称这种方法SplitOnLength(6)
我会得到以下内容.
我宁愿它足够智能停下来看起来更像..
//糟糕的例子,因为单个单词超过了最大长度,但在实际场景中长度会更大,接近200.
谁能帮我?
我有一种情况,我的CSS应用的样式不适用于被样式化的对象.这是我的site.css文件中的确切代码...
.rules aside {
width: 270px;
right: 0px;
top: 0px;
float: left;
}
.rules aside h3 {
border-bottom-width: 2px;
border-bottom-style: solid;
border-bottom-color: #2A2A2A;
padding-bottom: 6px;
padding-top: 11px;
margin-bottom: 0px;
color: #F0E29A;
font-size: 14px;
letter-spacing: -0.5px;
text-transform: uppercase;
}
Run Code Online (Sandbox Code Playgroud)
现在这里有一些利用它的HTML ......
<article class="content rules">
<section>
// ...
</section>
<aside>
Some Content
</aside>
</article>
Run Code Online (Sandbox Code Playgroud)
这是Chrome的Inspector为<aside>元素显示的CSS标记.
.rules aside {
border-bottom-width: 2px;
border-bottom-style: solid;
border-bottom-color: #2A2A2A;
padding-bottom: 6px;
padding-top: 11px;
margin-bottom: 0px;
color: #F0E29A;
font-size: 14px;
letter-spacing: -0.5px;
text-transform: uppercase; …Run Code Online (Sandbox Code Playgroud) 这真的很简单.我有以下代码..它适用于所有其他html5兼容浏览器(Safari 5,Chrome 9,FireFox),但在IE9(RC)中我收到以下错误.
行:16错误:对象不支持属性或方法'getElementsByTagName'
行:40错误:对象不支持属性或方法'tabs'
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function () {
$("#ribbon").tabs();
});
</script>
</head>
<body>
<header>
<span id="branding"></span>
<div id="ribbon-navigation">
<div id="ribbon">
<ul>
<li><a href="#ribbon-1">1</a></li>
<li><a href="#ribbon-2">2</a></li>
<li><a href="#ribbon-3">3</a></li>
<li><a href="#ribbon-4">4</a></li>
</ul>
<div id="ribbon-1" class="ribbon-strip">
@Html.Partial("Menus/Ribbons/__H1")
</div>
<div id="ribbon-2" class="ribbon-strip">
@Html.Partial("Menus/Ribbons/__2")
</div>
<div id="ribbon-3" class="ribbon-strip">
@Html.Partial("Menus/Ribbons/__3")
</div>
<div id="ribbon-4" class="ribbon-strip">
@Html.Partial("Menus/Ribbons/__4")
</div>
</div>
</div>
</header>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我能理解我的CSS是不是产生了正确的样式 - 但看起来它完全忽略了$("#ribbon").tabs();所有.有任何想法吗?
我有这样的Ninject和NHibernate的设置.现在,如果我有这个场景..
class HomeController : Controller
{
[Inject]
public ISession Session { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这工作正常.
但如果我再上一堂课......
class QueryObject
{
[Inject]
public ISession Session { get; set; }
}
// .. somewhere else in my program.
var test = new QueryObject().Execute();
Run Code Online (Sandbox Code Playgroud)
ISession无效!这不仅仅是ISession,它是我尝试注入的任何东西.
这是我的SessionModule:
public class SessionModule : Ninject.Modules.NinjectModule
{
private static ISessionFactory sessionFactory;
public override void Load()
{
Bind<ISessionFactory>()
.ToMethod(c => CreateSessionFactory())
.InSingletonScope();
Bind<ISession>()
.ToMethod(c => OpenSession())
.InRequestScope()
.OnActivation(session =>
{
session.BeginTransaction();
session.FlushMode = FlushMode.Commit;
})
.OnDeactivation(session =>
{
if …Run Code Online (Sandbox Code Playgroud) 有没有办法在输出上使用扩展方法扩展基本的html助手(TextBoxFor,TextAreaFor等),而不是仅仅重写整个方法?例如,添加...
@Html.TextBoxFor( model => model.Name ).Identity("idName")
我知道我可以使用以下内容实现这一点,已经......
@Html.TextBoxFor( model => model.Name, new { @id = "idName" })
但是,当您必须开始添加大量属性时,管理变得笨拙和令人沮丧.是否有任何方法可以为这些内容添加扩展而无需传递htmlAttributes每一个细节?
关于嵌套类的使用,我有一些争论.情况是类名在两个或多个地方重复是有意义的,虽然每个不同实例之间存在中度相似性,但它们通常是不同的.嵌套类通常不需要(如果有的话)超出其父类的范围.
那么,这似乎对我来说更有意义,而不仅仅是提出三个不同的类名.
class A {
class B {
}
class M {
class B {
}
}
class Q {
class B {
}
}
Run Code Online (Sandbox Code Playgroud)
显而易见的问题不是功能,而是一致性/重复性.我想知道其他开发人员是否曾经遇到过同样的问题,以及一些意见是什么.
鉴于以下代码,我无法返回字典.
[JsonProperty]
public virtual IDictionary<Product, int> JsonProducts
{
get
{
return Products.ToDictionary<Product, int>(x => x.Key, v => v.Value);
}
}
public virtual IDictionary<Product, int> Products { get; set; }
Run Code Online (Sandbox Code Playgroud)
我收到以下错误..
'System.Collections.Generic.IDictionary'不包含'ToDictionary'的定义和最佳扩展方法重载'System.Linq.Enumerable.ToDictionary(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic .IEqualityComparer)'有一些无效的参数
无法从'lambda表达式'转换为'System.Func'
无法从'lambda expression'转换为'System.Collections.Generic.IEqualityComparer
Product类没有什么特别之处.它被简单地定义为
class Product
{
public virtual int Id { get; set; }
public virtual String Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Application_PostAuthenticateRequest我的global.asax文件(ASP.NET MVC)中的方法实现自定义票证系统.我想知道这种事情的开销是多少 - 因为它会在每个请求上反序列化一些信息.它生成一个大约1.8 kb的cookie,这是一吨 - 但这是一个比频繁的数据库旅行更好的选择吗?
实现自定义FormsAuthenticationTicket系统似乎比继续基于数据库的往返更加智能User.Identity.Name.但我只是担心这种持续的反序列化非常具有抑制性.但它看起来像这样......
protected void Application_PostAuthenticateRequest(object sender, EventArgs e)
{
HttpCookie authCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
string encTicket = authCookie.Value;
if (!String.IsNullOrEmpty(encTicket))
{
// decrypt the ticket if possible.
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(encTicket);
var userData = Deserializer.Deserialize(ticket);
UserPrincipal principal = new UserPrincipal(userData);
HttpContext.Current.User = principal;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里是正在连载的类UserData中FormsAuthenticationTicket.
[Serializable]
public class MembershipData
{ …Run Code Online (Sandbox Code Playgroud) 在编写一个在Fluent Nhibernate/Nhibernate上运行的应用程序时,我有点担心.我想这对于任何ORM都是如此(甚至没有使用ORM),但是......我猜这个词是'研究领域',它与部署后更新数据库的最佳实践和方法有关?
在nHibernate中,我建立一个SessionFactory并进行初始运行,根据映射将数据库写出来.这很好,我甚至可以手动编写数据库.但是当我的客户回来并想要添加新内容时呢?我可以在不丢失数据的情况下附加到数据库吗?我对这一切都是全新的,自从这个项目开始以来一直困扰着我,我真的不知道要采取什么方向来确保我可以在部署之后管理该程序.
我已经查看了关于这个主题的其他堆栈溢出问题 - 其中一个甚至没有接受的答案(虽然问题本身有点模糊),但我确实发现了这个工具http://www.red -gate.com/products/sql-development/sql-compare/来自问题 工具部署后升级SQL Express数据库虽然我想知道"策略"有多好.
虽然与功能NHibernate发展,我注意到在我的关系可以指定一个Fetch属性,有可能的选择Select(),Join()和Subselect().
我做了一些搜索,得到的信息非常少.我确实在nHibernate文档和流畅的nHibernate文档中找到了它们,但除了给出它们的签名之外别无其他,这对我没什么帮助.
我想知道是否有任何真正的解释,这些是什么,以及他们真正做了什么.我自己一直很困惑.根据我自己的评估,它们似乎改变了引用实体被拉入对象图的方式,但我还没有完全辨别出它们是如何改变的,哪一个对于什么情况是最佳的......
我确实找到了这篇博文(http://www.mkyong.com/hibernate/hibernate-fetching-strategies-examples/),其中有一些细节,但我仍然对整个情况感到非常困惑.我还看到了其他的例子,状态使用Select()是更优化的,但背后的原因.另外,我在(http://community.jboss.org/wiki/AShortPrimerOnFetchingStrategies)发现了一个面向原始Java Hibernate平台的帖子,但我认为这个概念是相同的.在这一篇中,我的理论似乎有点夸张,因为它更多地关注他们所做的懒惰加载方面,但我还没有看到任何真正平坦的例子.