如何使用开源依赖项组织开源Visual Studio项目?

我已经开始使用一些其他开源项目作为依赖项的开源MVC4项目。 我已经分叉了另一个项目,并将根据我的需要进行修改。 我面临的问题是如何保持这些项目相互依赖,但需要单独维护。 然而,git拉动我的项目的人也会得到依赖项目吗? 我可以将来自其他项目的所有相关代码抨击到我的存储库中,但是这样我就无法为依赖项目的分支做出贡献。 我将成为我的存储库的一部分。 不是真的想那样做。 我可以完全单独维护其他项目,并将* .dll文件复制到我的项目中。 并将依赖的dll文件提交到git中。 这很好,但是我没有同时开发两个项目的能力,同时在调试时踩到相关代码(好吧,如果复制* .pdb文件也可能不行) 与第2点类似,我可以从依赖项目构建nuget包并将它们添加到我的主项目中 – 再次,不能真正同时开发这两个项目,需要切换上下文。 有一些魔术有一个解决方案文件,它结合了我的存储库和依赖存储库中的项目。 在每个构建中,将依赖的dll文件复制到/ lib文件夹并提交它们。 这样我就不需要在单独的项目之间切换上下文。 但缺点是当其他贡献者git拉我的项目时,他们没有得到依赖项目,并且解决方案文件可能会被破坏,因为它将引用不在repo中的项目。 在这种情况下,您如何组织代码?

使用Json.NET反序列化键值对的数组

鉴于以下json: [ {“id”:”123″, … “data”:[{“key1″:”val1”}, {“key2″:”val2”}], …}, … ] 这是一个更大的树的一部分,我如何将“数据”属性反序列化为: List Data { get; set; } 要么 List Data { get; set; } 要么 Dictionary Data { get; set; } 使用Json.NET? 两个版本都可以(我更喜欢List of MyCustomClass)。 我已经有一个包含其他属性的类,如下所示: public class SomeData { [JsonProperty(“_id”)] public string Id { get; set; } … public List Data { get; set; } […]

如何获取变量的编译时类型?

我正在寻找如何为调试目的获取变量的编译时类型。 测试环境可以简单地再现: object x = “this is actually a string”; Console.WriteLine(x.GetType()); 哪个会输出System.String 。 我怎么能在这里获得编译时类型System.Object ? 我看了一下System.Reflection ,但却失去了它提供的可能性。

如何在打开一个进程(记事本)后将焦点重新设置回forms?

我使用Process.Start()从程序中打开一个记事本,但新打开的记事本覆盖了屏幕。 但我确实希望我的应用程序保持其重点。 我同样(使用相同的Process.Start)打开MS Excel和Word,但要将焦点重新放回到我的表单,我需要写的是: this.Focus(); 但是用记事本怪起来:我打开记事本(以及所有其他这样的过程) Process process = new Process(); process.StartInfo.UseShellExecute = true; process.EnableRaisingEvents = true; process.StartInfo.FileName = @”abc.log”; process.Start(); 现在记事本成为焦点。 我试过这些: this.Activate() , this.Focus() ,不用说了 [DllImport(“user32.dll”, CharSet=CharSet.Auto, ExactSpelling=true)] public static extern IntPtr SetFocus(HandleRef hWnd); { IntPtr hWnd = myProcess.Handle; SetFocus(new HandleRef(null, hWnd)); } [DllImport(“User32”)] private static extern int SetForegroundWindow(IntPtr hwnd); [DllImportAttribute(“User32.DLL”)] private static […]

将String 转换为byte 数组

我正在尝试将此字符串数组转换为字节数组。 string[] _str= { “01”, “02”, “03”, “FF”}; to byte[] _Byte = { 0x1, 0x2, 0x3, 0xFF}; 我尝试了以下代码,但它不起作用。 _Byte = Array.ConvertAll(_str, Byte.Parse); 而且,如果我可以将以下代码直接转换为字节数组会更好: string s = “00 02 03 FF” to byte[] _Byte = { 0x1, 0x2, 0x3, 0xFF};

itextsharp修剪pdf文档的页面

我有一个pdf文档,其中包含我用c#以编程方式填写的表单字段。 根据三个条件,我需要修剪(删除)该文档中的一些页面。 这可能吗? 条件1:我需要保留第1-4页,但删除第5和第6页 对于条件2:我需要保留1-4页但删除5并保持6 条件3:我需要保留1-5页但删除6

在ASP.NET事件处理程序中使用async / await是否安全?

当我遇到这个时,我在ASP.NET中做了一些编码: protected async void someButtonClickHandler(…) { if(await blah) doSomething(); else doSomethingElse(); } 在提出这个问题之后,我对async / await如何工作有了更好的理解。 但后来让我感到震惊的是,以上面显示的方式使用async / await是否安全? 我的意思是在调用await blah之后调用者继续执行。 这意味着它可能会在await blah完成之前将响应呈现给客户端。 这是正确的吗? 如果是这种情况, doSomething() / doSomethingElse()会发生什么。 他们会被处决吗? 如果它们被执行了,用户是否会看到其更改的效果? 在我的情况下,这些方法会更改显示给用户的一些数据,但我也想知道在一般情况下会发生什么。

如何在URL中更改ASP.NET MVC控制器名称?

如果我们有“example_name”,我们可以使用[ActionName(“”)]在url中更改它所以,我想为控制器名称执行此操作。 我可以做这个: URL中的ControllerName> example_nameController >: “/ example_controller” 我想在URL中更改这样的控制器名称: “/ example-conroller”

asp.net下的Process.Start()?

根据msdn : ASP.NET Web页面和服务器控制代码在Web服务器上的ASP.NET辅助进程的上下文中执行。 如果在ASP.NET网页或服务器控件中使用Start方法,则新进程将在具有受限权限的Web服务器上执行。 该过程不会在与客户端浏览器相同的上下文中启动,也无法访问用户桌面。 哪个 帐号正是“限制权限” ? 示例: 我以RoyiN登录win7 Windows身份validation已启用 模拟已在 web.config(整个站点上)作为BobK 启用 W3WP用户是UserA (不是网络,也不是ApplicationPoolIdentity)。 在C#中,我执行Process.start(“….cmd.exe…”) ( 使用 Startinfo凭据:“ Martin ”,“ Password ”,“ Domain ”) 谁是最终运行cmd.exe的高效account ? “限制权限”实际上与谁有关?

如何更改.NET用户设置位置

默认情况下,设置存储在: C:\Documents and Settings\\Local Settings\Application Data\ 如何将此路径更改为应用程序目录。 我也不想为不同的用户提供不同的文件。 如何使设置全局? 我试图将设置的范围更改为“应用程序”,但后来我无法在运行时更改它们。