我正在使用Intersystems Cache从头开始一个项目.我想为项目设置一个持续集成服务器.Cache具有单元测试库,因此我们的想法是根据版本控制系统(ClearCase)中的更改,将源导入测试数据库,构建源,在缓存终端中运行单元测试.
除了Cache Objectscript之外,肯定还会有一些需要构建的java代码.其他技术可以在以后添加.所以我需要一个不受特定技术约束且可以轻松扩展的持续集成工具.我过去曾使用CruiseControl构建java解决方案,但这已经很久以前了,我想知道自那以后是否还有更好的解决方案.
什么是最好的(并且希望是免费的)持续集成产品,最容易扩展到不同的技术?
我希望用匿名委托和lambda表达式清除一些东西,用于为C#中的事件处理程序创建一个方法,至少对我自己来说.
假设我们有一个事件添加一个匿名委托或一个lambda表达式(对于那些可以使用较新版本.NET的幸运人群).
SomeClass.SomeEvent += delegate(object o, EventArg e) { /* do something */ };
Run Code Online (Sandbox Code Playgroud)
我已经读过,过去的人们已经忘记了仍然有处理程序的事件,这些处理程序会阻止类被垃圾收集.如何在不在类中将SomeEvent设置为null的情况下删除添加的处理程序.以下不是一个全新的处理程序吗?
SomeClass.SomeEvent -= delegate(object o, EventArg e) { /* do something */ };
Run Code Online (Sandbox Code Playgroud)
我可以看到将匿名委托或lambda表达式存储在变量中.但至少对我而言,这似乎打败了能够简单而简洁地添加事件处理程序的全部目的.
SomeEventDelegate handler = new SomeEventDelegate(delegate(object o, EventArg e) { /* do something */ });
SomeClass.SomeEvent += handler;
// ... stuff
SomeClass.SomeEvent -= handler;
Run Code Online (Sandbox Code Playgroud)
我再次理解你可以......
public override Dispose(bool disposing)
{
_someEvent = null;
this.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
但是我只是从事件中删除动态创建的方法更有趣.希望有人可以为我揭开这一点.谢谢!
使用Expression.Call时,方法"Any"有哪些类型和参数?
我有一个内部和外部表达式,我想与Any一起使用.表达式以编程方式构建.
内在(这是有效的):
ParameterExpression tankParameter = Expression.Parameter(typeof(Tank), "t");
Expression tankExpression = Expression.Equal(
Expression.Property(tankParameter, "Gun"),
Expression.Constant("Really Big"));
Expression<Func<Tank, bool>> tankFunction =
Expression.Lambda<Func<Tank, bool>>(tankExpression, tankParameter);
Run Code Online (Sandbox Code Playgroud)
外面(看起来正确):
ParameterExpression vehicleParameter = Expression.Parameter(typeof(Vehicle), "v");
Expression vehicleExpression = Expression.Lambda(
Expression.Property(
vehicleParameter,
typeof(Vehicle).GetProperty("Tank")),
vehicleParameter);
Run Code Online (Sandbox Code Playgroud)
这给了我两个表达式:
v => v.Tank
t => t.Gun == "Really Big";
Run Code Online (Sandbox Code Playgroud)
而我正在寻找的是:
v => v.Tank.Any(t => t.Gun == "Really Big");
Run Code Online (Sandbox Code Playgroud)
我试图使用Expression.Call方法来使用"Any".这是正确的方法吗?2.以下引发异常,"类型'System.Linq.Queryable'上没有方法'Any'与提供的参数兼容."
这是我如何调用任何:
Expression any = Expression.Call(
typeof(Queryable),
"Any",
new Type[] { tankFunction.Body.Type }, // this should match the delegate...
tankFunction);
Run Code Online (Sandbox Code Playgroud)
如何将来自vehicleExpression的Any链接到tankFunction?
即使我正在使用openSessionInViewInterceptor,我也遇到了LazyInitializationException的问题.我已经阅读了很多关于该主题的帖子,我尝试了三到四种不同的方法.
首先,我不想在Hibernate配置文件中将lazzy属性设置为false.所以,我想要解决这个问题.我使用的是Spring 2.5,Hibernate 3,Netbeans和Tomcat.
我的实现如下:
servlet.xml中
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="openSessionInViewInterceptor" />
</list>
</property>
<property name="mappings">
<props>
<prop key="/index.htm">indexController</prop>
</props>
</property>
</bean>
<bean id ="openSessionInViewInterceptor" name="openSessionInViewInterceptor"
class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
applicationContext.xml中
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>TasquesDAOHibernate/Model/Tasca.hbm.xml</value>
<value>TasquesDAOHibernate/Model/TipusTasca.hbm.xml</value>
<value>TasquesDAOHibernate/Model/Prioritat.hbm.xml</value>
<value>TasquesDAOHibernate/Model/Persona.hbm.xml</value>
<value>TasquesDAOHibernate/Model/EstatTasca.hbm.xml</value>
<value>TasquesDAOHibernate/Model/Usuari.hbm.xml</value>
<value>TasquesDAOHibernate/Model/LogActivitat.hbm.xml</value>
<value>TasquesDAOHibernate/Model/ObjecteSIPANUsuari.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.jdbc.batch_size">0</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<bean id="tasquesDAO" …
Run Code Online (Sandbox Code Playgroud) 我在使用这段代码时遇到了一些麻烦.问题是当我请求服务器向我发送一些数据时,客户端只是在服务器尝试向我发送数据时断开连接,应用程序存在.
这是我认为导致问题的路线
int SendBinary(int *byte, int length)
{
int bytes_sent;
bytes_sent = send(connecting_socket, byte, length, 0);
return bytes_sent;
return 0;
}
void SendFile(FILE *fp, int file_size)
{
int current_char = 0;
do{
current_char = fgetc(fp);
if ( current_char == EOF )
break;
SendBinary(¤t_char, sizeof(char));
}
while(current_char != EOF);
}
Run Code Online (Sandbox Code Playgroud)
任何想法我应该做些什么来防止这种情况?修改整个源代码以补充此代码段.
我正在考虑创建一种非常容易在手机上键入的小语言(J2ME),为了在手机中运行它(J2me总是),实现哪种语言更合适?适当的含义,小/简单的语法,易于在手机中输入.
是lisp吗?某种Basic/Python/Ruby(我认为不是......)?或者另一个新的(你能提出新的语法吗?)?
我想在安装我的iPhone应用程序时为用户Mobile Safari书签添加书签.
我不希望用户必须手动操作,我希望我的iphone应用程序安装书签(实际上是基于javascript的书签,例如javascript:
)
有人知道这样做吗?
为什么我的mod_rewrite这样做?
add path info postfix: /home/mobelluk/public_html/about.php -> /home/mobelluk/public_html/about.php/
Run Code Online (Sandbox Code Playgroud)
这导致一切上不必要的尾随斜线.
我已经禁用了所有的.htaccess规则,因此它们已经不合时宜了.
今天我遇到的问题是我无法删除文件夹,因为"它很忙".
我怎样才能找出应该归咎于哪个应用程序,或者我可以用暴力删除它?
我试图<BR>
在VB.NET中使用字符串" "并通过XSLT将其转换为HTML.但是,当HTML出现时,它看起来像这样:
<BR>
Run Code Online (Sandbox Code Playgroud)
我只能假设它继续并尝试渲染它.有什么方法可以将它们转换</>
回括号中,这样我就可以获得换行了吗?