在项目文件中,我导入自己的目标文件
<Import Project="Build\CopyDependencies.target" />
Run Code Online (Sandbox Code Playgroud)
然后我从目标文件中调用目标
<CallTarget Targets="CopyDependencies" UseResultsCache="false" />
Run Code Online (Sandbox Code Playgroud)
如果我编辑CopyDependencies.target文件,我必须重新加载整个解决方案,然后只有更改到CopyDependencies.target生效.我相信它是Visual Studio中的某种构建定义缓存?如果是,也许它可以关闭?
在.NET MVC中,存在@Url.Action()和在RoR中存在url_for()
我在angularjs中找不到类似的url building helper.
我已经提供了构建url所需的所有东西,$routeProvider所以:$routeProvider.urlFor("MyCtrl", {id: 5})可能很高兴.
我的主要目标是避免在视图和其他地方使用硬编码的网址,并避免重复网址/路由模式两次.
更新:
似乎很难解释我想要的东西,所以这里是我想要的确切示例:
而不是在视图中写这个:
<a ng-href="/product/5">foo</a>
Run Code Online (Sandbox Code Playgroud)
我想写这个:
<a ng-href="urlFor("ProductCtrl", {id:5})">foo</a>
Run Code Online (Sandbox Code Playgroud)
因此,如果以后我决定改变ProductCtrl的路径,我就不必在这个元素中更新url.
什么是我的目标的好方法?
我正在使用VS 2010 + resharper,我已经厌倦了在代码中重新格式化支架缩进,因为我想要它.例如,如果我有像这样的代码:
operators.Keys
.ToList()
.ForEach(k => filters
.AddRange(CustomHtmlHelpers.GetIdAndValueListByPrefix(queryString, k)
.Select(t => new QueryFilter()
{
Operation = operators[k],
PropertyName = t.Item1,
Value = t.Item2
})))
Run Code Online (Sandbox Code Playgroud)
如果我把;VS(或resharper)'修复'括号缩进放在最后,那么代码就像:
operators.Keys
.ToList()
.ForEach(k => filters
.AddRange(CustomHtmlHelpers.GetIdAndValueListByPrefix(queryString, k)
.Select(t => new QueryFilter()
{
Operation = operators[k],
PropertyName = t.Item1,
Value = t.Item2
})));
Run Code Online (Sandbox Code Playgroud)
如果我使用resharper的代码清理,也会发生同样的情况.我可能会关闭自动代码重新格式化,;但在其他情况下我需要它.我尝试在VS和resharper设置中更改代码格式化选项,但从未得到我想要的缩进.
我如何配置vs或resharper,以便它不会执行多个选项卡格式化?或者也许我可以使用其他插件(与r#一起)专门用于此目的?
编辑:对于任何对这个问题感兴趣的人来说,在r#论坛http://devnet.jetbrains.net/thread/304794中有同样的问题.任何想要从r#看到更好的嵌套代码缩进的人都欢迎在这里投票赞成http ://youtrack.jetbrains.net/issue/RSRP-88220
我正在尝试AutoPropertyDataAttribute基于CompositeDataAttribute此示例创建AutoFixture:PropertyData和异构参数.
它适用于单组参数,但失败并带有更多参数集.这是代码:
public static IEnumerable<object[]> NumericSequence
{
get
{
yield return new object[] {1};
//yield return new object[] {2};
}
}
[Theory]
[AutoPropertyData("NumericSequence")]
public void Test(int? p1, int? p2, int? p3)
{
Assert.NotNull(p1);
Assert.NotNull(p2);
}
public class AutoPropertyDataAttribute : CompositeDataAttribute
{
public AutoPropertyDataAttribute(string propertyName)
: base(
new DataAttribute[] {
new PropertyDataAttribute(propertyName),
new AutoDataAttribute()
})
{
}
}
Run Code Online (Sandbox Code Playgroud)
尝试取消注释第二个yield将使用消息中断测试:
System.InvalidOperationException: Expected 2 parameters, got 1 parameters
at Ploeh.AutoFixture.Xunit.CompositeDataAttribute.<GetData>d__0.MoveNext()
at Xunit.Extensions.TheoryAttribute.<GetData>d__7.MoveNext()
at Xunit.Extensions.TheoryAttribute.EnumerateTestCommands(IMethodInfo method) …Run Code Online (Sandbox Code Playgroud) 我想从NHibernate获取这个SQL:
SELECT SUM(color_pages) * SUM(total_pages)
FROM connector_log_entry
GROUP BY department_name
Run Code Online (Sandbox Code Playgroud)
但我无法在任何地方找到任何算术运算(*)投影.
这是我到目前为止的代码:
Session.QueryOver<ConnectorLogEntry>()
.SelectList(list => list
.SelectGroup(m => m.DepartmentName)
.WithAlias(() => dto.Department)
.Select(Projections.Sum<ConnectorLogEntry>(m => m.TotalPages))
//.Select(Projections.Sum<ConnectorLogEntry>(m => m.ColorPages))
.WithAlias(() => dto.TotalColorPercentage))
.TransformUsing(Transformers.AliasToBean<DepartmentConsumption>());
Run Code Online (Sandbox Code Playgroud) 我有:
class MyBase<T1, T2>{}
class MyConcreteBase<T2> : MyBase<ConcreteType1, T2>{}
class MyConcrete1 : MyConcreteBase<ConcreteType2>{}
class MyConcrete2 : MyBase<ConcreteType1, ConcreteType2>{}
Run Code Online (Sandbox Code Playgroud)
我如何得到类型T1和T2如果我有实例MyConcrete1或MyConcrete2或MyConcreteBase或任何其他类型的实例派生自MyBase<T1, T2>
我现在这样做的方式是使用.GetType().BaseTypewhile BaseType.Name.StartsWith("MyBase")然后使用继承链"起床".GetGenericArguments()
它工作正常,但我对它不满意,尤其是.StartsWith("MyBase")部分.
有人有其他建议吗?
我的代码就像
DepartmentPaperConsumption dto = null;
Run Code Online (Sandbox Code Playgroud)
然后我有NHibernate QueryOver结果,我想订购它
result.OrderByAlias(() => dto.TotalColorCopys);
Run Code Online (Sandbox Code Playgroud)
但我希望能够dto用字符串动态指定任何属性.我尝试使用动态LINQ,但似乎我无法得到它.我也试过从头开始构建LambdaExpression - 也没有运气.我将不胜感激任何帮助.
我即将开始构建WCF Web服务,我想以这样的方式构建解决方案:
易于开发 - 我希望我的团队中的开发人员可以获得源代码,构建和启动服务,可能最好是有可能将其作为控制台应用程序启动?
以后可以在IIS,WAS或Windows服务中轻松托管此服务.
我在想这个项目:
这种方法会有问题吗?我应该事先考虑哪些事情?也许有更好的结构?
我将不胜感激任何有助于我选择正确结构的资源的见解和链接.
ps web服务本身很简单,但这种方法可以重用于更多服务.
这是我的代码:
public class Range<TNum> where TNum : IComparable
{
public TNum From { get; set; }
public TNum To { get; set; }
}
public class MarkableRange<TNum> where TNum : IComparable
{
private readonly List<Range<TNum>> _markedRanges = new List<Range<TNum>>();
public void MarkOne(TNum number)
{
_markedRanges.Where(r => number >= r.From && number <= r.To);
}
}
Run Code Online (Sandbox Code Playgroud)
编译器说它不能在number >= r.From和中的操作数上应用operator> =number <= r.To
我可以逃脱,List<Tuple<TNum, TNum>>但我想要更有意义的东西.那么我做错了什么或c#编译器不是那么聪明才能理解我的意图?
谁能解释为什么这里a = [] ? 1 : 2a等于1,这里b = [] == true ? 1 : 2b等于2
c# ×7
nhibernate ×2
queryover ×2
angularjs ×1
autofixture ×1
brackets ×1
generics ×1
javascript ×1
lambda ×1
linq ×1
math ×1
msbuild ×1
reflection ×1
resharper ×1
routing ×1
solution ×1
url ×1
wcf ×1
web-services ×1
xunit.net ×1