Tag: C#的

如何pipe理多个分支项目中的迁移?

我有一个ASP.NET MVC3项目使用entity framework4.3与代码优先的方法。 我使用Migrations来保持数据库是最新的。 该项目是在源代码控制下,我有一些分支机构。 我刚刚意识到的是,当我想将我的一个分支合并到主控中时,会出现问题。 由于我在两个分支都创build了迁移文件,所以当我合并时会有重叠的迁移,这可能会导致冲突。 有多个分支的项目中pipe理迁移的好方法吗? 更新 一种方法是合并,然后删除分支分离时创build的所有迁移文件,然后创build一个新的迁移文件,该文件保存从创build分支到合并为止的所有更改。这将适用于dev-environment,您可以在其中转储数据库并使用所有迁移文件重新构build它。 那么问题就是现场环境。 由于您无法回滚创build分支而没有丢失数据的风险,因此尝试使用新的迁移文件更新实时数据库时会有冲突。

我可以共享一个文件描述符到Linux上的另一个进程,或者他们是本地进程?

说我有2个进程,ProcessA和ProcessB。 如果我在ProcessA中执行int fd=open(somefile) ,那么我可以通过IPC的文件描述符fd的值传递给ProcessB,并让它操纵相同的文件?

在C ++ 11中省略返回types

我最近发现自己在C ++ 11模式下使用gcc 4.5使用下面的macros: #define RETURN(x) -> decltype(x) { return x; } 并写这样的function: template <class T> auto f(T&& x) RETURN (( g(h(std::forward<T>(x))) )) 我一直在这样做,以避免不必要有效地写两次函数体,并保持身体和返回types的同步(这在我看来是一个等待发生的灾难)的变化。 问题是,这种技术只适用于一行function。 所以当我有这样的事情(令人费解的例子): template <class T> auto f(T&& x) -> … { auto y1 = f(x); auto y2 = h(y1, g1(x)); auto y3 = h(y1, g2(x)); if (y1) { ++y3; } return […]

从父CMakeLists.txt覆盖CMake中的默认选项(…)值

我正在尝试在源代码树中包含几个第三方库,只需对其构build系统进行最小的更改便于升级。 他们都使用CMake,就像我一样,所以在我自己的CMakeLists.txt中,我可以使用add_subdirectory(extern/foo)作为libfoo。 但是,foo CMakeLists.txt编译testing工具,编译文档,我不需要的共享库等等。 libfoo的作者有先见之明,通过选项来控制这些选项 – 例如option(FOO_BUILD_SHARED "Build libfoo shared library" ON) – 这意味着我可以通过CMake命令行设置它们。 但是我想在默认情况下closures,并通过命令行覆盖。 我曾尝试在add_subdirectory(extern/foo)之前set(FOO_BUILD_SHARED OFF) add_subdirectory(extern/foo) 。 这样做的结果是,在第二次和以后的构build尝试中,不会尝试构build共享库,而不是在第一个构build共享库时,这是我真正需要加速的。 这是可能的,还是我需要维护这些项目分叉CMakeLists.txt?

从demangled的名字得到重名的名字

有没有办法从g ++中取回demangled的名字。 例如,我有demangled名称func(char*, int) ,我应该怎么做才能得到重名的名字, _Z4funcPci ? 我的问题是具体的g ++。

什么是最好的方式来定位多个版本的.NET框架?

我正在构build一个类库,我将把它部署到一个NuGet包中,这使我可以根据添加的项目的.NET框架版本,select不同的程序集作为参考添加。 这是一个很好的function,但是我想知道的是,是否有可能拥有一个类库项目,并针对多个.NET框架版本进行构build? 我宁愿避免有: MyLibrary40.dll和MyLibrary45.dll 如果可能的话,因为这两个项目将不得不分享大量的代码。 4.5版本将提供asyncfunction,这是4.5的function。 有谁知道这是最好的方法是什么? 我可以使用多个构buildconfiguration吗? 还是我必须走下单独的项目路线? 如果我在C ++中工作,我可能会在一个configuration中仅支持的函数中使用多个configuration和#if块,但是我担心这会导致我有两个具有相同名称的程序集执行不同的操作。 提前致谢!

将函数模板中的静态局部variables的地址用作types标识符是否安全?

我希望创build一个替代std::type_index不需要RTTI : template <typename T> int* type_id() { static int x; return &x; } 请注意,局部variablesx的地址被用作typesID,而不是x本身的值。 另外,我不打算在现实中使用裸指针。 我刚刚清除了与我的问题无关的所有内容。 看到我的实际type_index实施在这里 。 这种方法是否合理?如果是这样,为什么? 如果没有,为什么不呢? 我觉得我在这里摇摇欲坠,所以我对我的方法为什么会起作用或不起作用的确切原因感兴趣。 一个典型的用例可能是在运行时注册例程以通过单个接口处理不同types的对象: class processor { public: template <typename T, typename Handler> void register_handler(Handler handler) { handlers[type_id<T>()] = [handler](void const* v) { handler(*static_cast<T const*>(v)); }; } template <typename T> void process(T const& t) { auto […]

WinFormscombobox数据绑定陷阱

假设你正在做类似下面的事情 List<string> myitems = new List<string> { "Item 1", "Item 2", "Item 3" }; ComboBox box = new ComboBox(); box.DataSource = myitems; ComboBox box2 = new ComboBox(); box2.DataSource = myitems 所以现在我们有2个combobox绑定到该数组,并一切工作正常。 但是,当您更改一个combobox的值时,它会将两个combobox更改为您刚select的combobox。 现在,我知道数组总是以引用的方式传递(知道当我学习C:D时),但为什么combobox在一起变化呢? 我不相信combobox控件正在修改集合。 作为解决办法,不要达到预期/期望的function性 ComboBox box = new ComboBox(); box.DataSource = myitems.ToArray();

使用嵌套的C ++类和枚举的优点和缺点?

使用嵌套的公共C ++类和枚举的优点和缺点是什么? 例如,假设您有一个名为printer的类,并且此类还存储输出托盘上的信息,则可以有: class printer { public: std::string name_; enum TYPE { TYPE_LOCAL, TYPE_NETWORK, }; class output_tray { … }; … }; printer prn; printer::TYPE type; printer::output_tray tray; 或者: class printer { public: std::string name_; … }; enum PRINTER_TYPE { PRINTER_TYPE_LOCAL, PRINTER_TYPE_NETWORK, }; class output_tray { … }; printer prn; PRINTER_TYPE type; output_tray tray; 我可以看到嵌套私有枚举/类的好处,但是当涉及到公共的时候,办公室是分裂的 […]

找出一个方法可能抛出的exceptionC#

有没有什么办法来找出在.NET代码中的任何方法可能抛出什么exception? 理想情况下,我想看看可能会抛出什么,并select我想处理的是哪些。 我想我想要从java中的throws子句得到的信息。 情况是我正在从networking上的xml文档做一个linq查询,并想知道什么可能出错。 我可以在reflection器中打开assembly体,看看,但我认为可能有一个更简单的方法。