我已经用Sandcastle为我的项目生成了一个网站文档.这个网站使用框架,所以当我点击网站时,浏览器中的URL不会改变.
当我浏览Sandcastle生成的网站文档时,我想在浏览器中更改URL.为什么?因为我想链接到开发人员环境其他部分的文档的具体子页面.
而且我希望这个链接是永久性的.因此,当我再次生成新版本项目的文档时,链接不会更改,因此我不需要更改所有新链接.
这可能吗?如何实现这个?
我有以下代码(为了讨论而简化).我不明白的是为什么session.Transaction属性在回滚后返回不同的事务.
例如,这意味着该属性Session.Transaction.WasRolledBack几乎没有帮助,除非我存储对第一个事务的引用并检查该事务的属性.
任何人都可以提供一些见解吗?
int transId = session.Transaction.GetHashCode();
using (var tx = session.BeginTransaction())
{
Assert.AreEqual(transId, tx.GetHashCode());
tx.Rollback();
Assert.AreEqual(transId, tx.GetHashCode());
Assert.AreEqual(transId, session.Transaction.GetHashCode()); // Fails
}
Run Code Online (Sandbox Code Playgroud)
更新:
David Walschots的回答非常有用且精确.另外,我在Nhibernate文档中找到了以下内容:
如果你回滚事务,你应该立即关闭并放弃当前会话,以确保NHibernate的内部状态是一致的."
每当我在svn中进行提交循环时,我会在编写注释时检查差异.我认为在显示差异时显示我进行修改的实际功能真的很棒.
我查看了这个页面,其中提到-p选项将显示更改所在的C函数.但是,当我尝试将-p选项与某些C++代码一起使用时,它通常会返回访问说明符(私有,公共,受保护等),这不是非常方便.
我注意到diff的-F选项与-p相同,但是采用用户指定的正则表达式. 我想知道:是否有一个简单的正则表达式来匹配C++函数?似乎只有这一切才能让它发挥作用.
我花了一些时间自己看这个,但工作处于紧缩模式,这似乎很多人会发现有用的东西,所以我想我会在这里发布.
编辑:我不是在寻找一个大满贯扣篮式正则表达式的东西,但是只需在区域差异上方找到最接近的函数定义的东西就会显示出来.事实上它不会完美,而且有些马车对我来说没问题.只要它正常工作,就像60%的时间将是一个显着的生产力提高恕我直言.
有谁知道在Visual Studio 2008专业版中访问网站管理工具的位置?
我们如何在我们的代码中使用它们,以及什么会导致NaN(不是数字)?
在Linux和OS X上,我习惯于在指定的Rails"环境"中运行Rake任务:
$ export RAILS_ENV=monster_island ; rake monsters:destroy_all
Run Code Online (Sandbox Code Playgroud)
如果我在Windows控制台上运行Windows XP上的任务,我该怎么做?
我想知道为什么矢量模板执行两个分配,只有一个似乎是必要的.
例如:
#include <vector>
#include <iostream>
class A {
public:
A(const A &a) {
std::cout << "Calling copy constructor " << this << " " << &a << "\n";
}
A() {
std::cout << "Calling default constructor " << this << "\n";
}
~A() {
std::cout << "Calling destructor " << this << "\n";
}
};
int main(int argc, char **argv)
{
std::vector <A> Avec;
std::cout << "resize start\n";
Avec.resize(1);
std::cout << "resize end\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
resize start …
我在Obj-c和Cocoa有几年的经验,但我刚刚回到它和Obj-C 2.0等的进步.
我正试图绕过现代运行时并声明属性等.让我感到困惑的一件事是现代运行时能够隐式创建iVar.当然,这意味着在您的代码中,您应始终使用self.property来访问该值.
但是,在init*和dealloc(假设您不使用GC)方法中,我们应该直接使用iVar(在当前运行时).
所以问题是:
我们应该使用init*中的属性访问器和使用Modern Runtime的dealloc吗?
如果是这样,为什么会有所不同?是不是因为编译器看不到iVar?
如果我需要覆盖一个访问器,我是否仍然可以访问将在运行时定义的iVar,或者我是否必须定义运行时将使用的实际iVar?
同样,如果我可以访问合成的iVar,为什么我不能继续为init*和dealloc方法执行此操作?
我多次阅读文档,但他们似乎对所有这些都有点模糊,我想确保我理解它以便决定如何继续编码.
希望我的问题清楚.
测试快速摘要:
如果你没有在遗产中声明ivar,编译器就完全不满意了
如果您#ifndef __OBJC2__在遗留编译器中使用ivar很高兴,您可以直接使用ivar和作为属性
在现代运行时,您可以将ivar保留为undefined并将其作为属性进行访问
在现代运行时,尝试直接访问ivar而不进行声明会在编译期间出错
@private 当然,伊娃的宣言允许直接进入遗产和现代的伊塔尔
现在真的没有给出一个干净的方法吗?
我即将开始用PHP构建一个庞大的临床医疗保健应用程序,我正在寻找一些关于框架的建议.我需要能够提出一个快速原型,因此框架需要处理许多平凡的任务; 因此,我将其缩小到CakePHP或Symfony.
我希望得到一些开发人员对这两个框架都有用的意见.
谢谢,皮特
c++ ×2
c# ×1
cakephp ×1
console ×1
diff ×1
hyperlink ×1
infinity ×1
java ×1
linux ×1
macos ×1
nan ×1
nhibernate ×1
objective-c ×1
permalinks ×1
php ×1
regex ×1
ruby ×1
sandcastle ×1
stl ×1
svn ×1
symfony1 ×1
transactions ×1
web ×1
windows ×1
windows-xp ×1