我使用了一些强类型表达式,这些表达式被序列化以允许我的UI代码具有强类型排序和搜索表达式.这些是类型的Expression<Func<TModel,TProperty>>并且如此使用:SortOption.Field = (p => p.FirstName);.对于这个简单的案例,我已经完美地完成了这项工作.
我用来解析"FirstName"属性的代码实际上重用了我们使用的第三方产品中的一些现有功能,并且它工作得很好,直到我们开始使用深层嵌套的属性(SortOption.Field = (p => p.Address.State.Abbreviation);).此代码在支持深层嵌套属性的需求方面有一些非常不同的假设.
至于这段代码的作用,我并不是真的理解它而不是改变代码,我想我应该从头开始编写这个功能.但是,我不知道这样做的好方法.我怀疑我们可以做一些比做ToString()和执行字符串解析更好的事情.那么有什么好办法来处理琐碎和深层嵌套的案例呢?
要求:
p => p.FirstName我需要一串"FirstName".p => p.Address.State.Abbreviation我需要一串"Address.State.Abbreviation"虽然对我的问题的答案并不重要,但我怀疑我的序列化/反序列化代码对将来发现这个问题的其他人有用,所以它在下面.同样,这段代码对这个问题并不重要 - 我只是觉得它可能对某些人有所帮助.请注意,DynamicExpression.ParseLambda它来自动态LINQ的东西,Property.PropertyToString()这是这个问题的关键.
/// <summary>
/// This defines a framework to pass, across serialized tiers, sorting logic to be performed.
/// </summary>
/// <typeparam name="TModel">This is the object type that you are filtering.</typeparam>
/// <typeparam name="TProperty">This is the property on the …Run Code Online (Sandbox Code Playgroud) 我的问题如下:
我有server.properties不同的环境.通过名为的系统属性提供这些属性的路径propertyPath.如何指示我applicationContext.xml使用给定的propertyPath系统属性加载属性,而不需要一些丑陋的MethodInvokingBean调用System.getProperty('');
我的applicationContext.xml
<bean id="systemPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="placeholderPrefix" value="sys{"/>
<property name="properties">
<props>
<prop key="propertyPath">/default/path/to/server.properties</prop>
</props>
</property>
</bean>
<bean id="propertyResource" class="org.springframework.core.io.FileSystemResource" dependency-check="all" depends-on="systemPropertyConfigurer">
<constructor-arg value="sys{propertyPath}"/>
</bean>
<bean id="serviceProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" ref="propertyResource"/>
</bean>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" ref="propertyResource"/>
<property name="placeholderPrefix" value="prop{"/>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="ignoreResourceNotFound" value="false"/>
</bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="prop{datasource.name}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
有了这个配置,propertyResource也会抱怨
java.io.FileNotFoundException: sys{propertyPath} (The system cannot find the file specified)
Run Code Online (Sandbox Code Playgroud)
有什么建议?;-)谢谢gabe …
问题是我正在尝试构建一个在其资源中包含build.xml文件的项目.基本上,我将我的项目打包为Maven2的jar,然后使用ant安装程序来安装我的项目.
我需要过滤build.xml文件中的一个名为build.date的属性,但还有其他一些我不想过滤的属性,比如$ {basedir},因为它被ant安装程序使用但被替换由Maven的basedir变量.所以,我需要以某种方式告诉Maven过滤$ {build.date},而不是$ {basedir}.
我尝试创建一个属性文件作为过滤器,其中"basedir = $ {basedir}"作为其中一个属性,但我收到以下错误:
解析表达式:'$ {basedir}':检测到以下递归表达式循环:[basedir]
任何建议将不胜感激.
谢谢,
BJ
我正在查看一些外部代码,并看到一行看起来像这样的Ruby代码
string_name = string_name[3..-1]
Run Code Online (Sandbox Code Playgroud)
是什么在[n..-x]做什么或意味着什么呢?
谢谢.
有没有办法在不改变StackPanel中这些控件的实际顺序的情况下更改StackPanel中控件的绘制顺序?
我问的原因是我们在按钮之间有一个边距为0的按钮栏.活动按钮与相邻按钮重叠(即边距设置为-10).这里的问题是稍后绘制右按钮,因此在顶部而不是活动按钮上绘制.
我担心我需要制作一个基于网格的自定义控件.
我在Visual Studio 2010中进行了调试,我们刚刚安装并尝试在快速监视窗口中查看字典.我看到键和值,但钻进那些显示计数和非公众成员,非公众成员继续跟踪,我从来没有看到字典中的值.我可以运行test.Take(10)并查看值,但为什么我必须这样做.我没有安装VS 2008进行比较,但似乎我可以更轻松地调试字典.为什么现在这样呢?这只是我在机器上设置的设置吗?
测试代码:
Dictionary<string, string> test = new Dictionary<string, string>();
test.Add("a", "b");
Run Code Online (Sandbox Code Playgroud)
编辑:我刚刚在控制台应用程序中尝试了相同的调试,它按预期工作.另一个项目是Silverlight 4应用程序,为什么它们不同?
编辑:Microsoft Connect的回复:"这是我们的遗漏 - 我们之前已经修复了Visual Studio 2008 SP1的确切问题,但遗憾的是,此修复程序未移植到Visual Studio 2010代码库.现在再次修复此问题(此好的时间!)我们正在考虑在VS2010 SP1中发布此修复程序.
Alex Turner项目经理Visual Basic和C#编译器"所以它应该尽快修复.
编辑:我刚刚在SP1中检查了这一点,它正常工作.
visualizer visual-studio-2010 visual-studio-debugging silverlight-4.0
鉴于以下课程,
public class Result
{
public bool Success { get; set; }
public string Message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在这样的Controller动作中返回其中一个,
return Json(new Result() { Success = true, Message = "test"})
Run Code Online (Sandbox Code Playgroud)
但是,我的客户端框架期望这些属性是小写的成功和消息.没有实际上必须有小写的属性名称是一种方法来实现这个思想正常的Json函数调用?
当网站为您提供一些JavaScript,您将其粘贴到网页中以在该位置插入内容时,脚本如何确定其在DOM中的当前位置?不使用document.write?
谢谢,
缺口
如何为以下TSQL编写Linq-to-SQL语句?
select
count(*),
sum(Amount),
avg(Amount),
min(Amount),
max(Amount)
from
TableName
Run Code Online (Sandbox Code Playgroud) c# ×2
android ×1
ant ×1
asp.net-mvc ×1
draw ×1
embed ×1
javascript ×1
json ×1
lambda ×1
linq-to-sql ×1
maven-2 ×1
properties ×1
ruby ×1
spring ×1
stackpanel ×1
string ×1
syntax ×1
visualizer ×1
wpf ×1