检查文件/文件夹访问权限

我得到一个运行此代码的UnautorizedAccessException : string[] fileList = Directory.GetFiles(strDir, strExt); c:\users\username\appdata发生exception如何检查我是否具有访问权限(列出和读取文件)?

将JSON反序列化为C#类

下面是我在成功创建新“作业代码”条目后从REST API获得的(略微)精简响应。 我需要将响应反序列化为某些类,但我很难过。 作为参考,我在.NET 3.5中使用JSON.NET(在SQL Server 2008 R2中的SSIS脚本中运行)来尝试反序列化。 这是JSON – 我显然无法控制它,因为它来自其他人的API: { “results”:{ “jobcodes”:{ “1”:{ “_status_code”:200, “_status_message”:”Created”, “id”:444444444, “assigned_to_all”:false, “billable”:true, “active”:true, “type”:”regular”, “name”:”1234 Main Street – Jackson” }, “2”:{ “_status_code”:200, “_status_message”:”Created”, “id”:1234567890, “assigned_to_all”:false, “billable”:true, “active”:true, “type”:”regular”, “name”:”4321 Some Other Street – Jackson” } } } } 在我的C#代码中,我确实定义了一个“JobCode”类,它只将JSON值部分映射到属性 – 我对返回给我的所有数据都不感兴趣: [JsonObject] class JobCode { [JsonProperty(“_status_code”)] public […]

为什么我不能将List 分配给List ?

我定义了以下类: public abstract class AbstractPackageCall { … } 我还定义了这个类的子类: class PackageCall : AbstractPackageCall { … } AbstractPackageCall还有其他几个子节点 现在我想进行以下调用: List calls = package.getCalls(); 但我总是得到这个例外: Error 13 Cannot implicitly convert type ‘System.Collections.Generic.List’ to ‘System.Collections.Generic.List’ 这里有什么问题? 这是Package#getCalls的方法 internal List getCalls() { return calls; }

内存屏障生成器

阅读Joseph Albahari的线程教程 ,以下内容被提及作为内存屏障的生成器: C#的lock语句( Monitor.Enter / Monitor.Exit ) Interlocked类的所有方法 使用线程池的异步回调 – 包括异步委托,APM回调和任务延续 设置和等待信令构造 任何依赖于信令的东西,例如启动或等待任务 此外,Hans Passant和Brian Gideon 补充了以下内容 (假设其中没有一个已经适合以前的类别之一): 启动或唤醒线程 上下文切换 Thread.Sleep() 我想知道这个清单是否完整(如果完整清单甚至可以实际制作) 编辑添加建议: 易失性(读数意味着获取围栏,写作意味着释放围栏)

将二维数组转换为List(一维)的快速方法

我有一个二维数组,我需要将其转换为List(相同的对象)。 我不想用for或foreach循环来完成它,它将获取每个元素并将其添加到List中。 还有其他方法吗?

如何列出所有类的变量

有没有办法在C#中列出类的所有变量(字段)。 如果是,可能有人给我一些例子如何将它们保存在List并使用Anonymous Types (var)获取它们。

从管理员配置文件创建当前用户配置文件中的文件夹和文件

我们的客户端仅允许以管理员身份登录时安装应用程序。 必须为机器的当前用户安装需要安装的应用程序。 应用程序安装正常,当我需要在用户的appdata /用户配置文件文件夹中删除配置文件时,我的问题就出现了。 由于这是他们想要的地方,目前配置在安装时被删除在管理员配置文件中。 我如何通过这个,有没有办法让我检查安装,如果有其他配置文件,也许写给他们,但这感觉很脏。

使用C#HttpListener进行URL映射

在下面的代码中,我正在等待对8080端口的任何调用。 static void Main() { HttpListener listener = new HttpListener(); listener.Prefixes.Add(“http://*:8080/”); listener.Start(); while(isRunning) { HttpListenerContext ctx = listener.GetContext(); new Thread(new Worker(ctx).ProcessRequest).Start(); } } 是否可以将特定的URL模式映射到不同的行为? 我想实现一个REST风格的服务器,即调用localhost:8080 / person / 1将启动getPersonH​​andler(int) [Mapping(“*:8080/person/$id”)] public void getPersonHandler(int id){…} 我知道, Mapping语法只是我自己对JAX-RS库的一厢情愿。 我想在C#中做同样的事情(桌面C#,而不是asp)

如何通过XML序列化来了解何时加载?

我正在尝试通过XML序列化加载一个对象树,此时它将加载对象,并非常愉快地创建树。 我的问题围绕着这些类支持一定级别的审计这一事实。 我希望能够做的是在每个对象加载完成后调用一些方法。 为了论证,假设我有一个相当通用的对象树,在不同的级别有不同的类,如: 123 Any Street 456 High Street 有没有办法使用默认的序列化器(以类似的方式创建像ShouldSerializeFoo这样的方法)来确定每个对象的加载何时完成? 编辑:我应该指出,暴露类似于反序列化后我可以调用的OnLoaded()方法的明显案例,让我觉得这是一件“坏事”。 Edit2:为了讨论起见,这是我当前的hack “方法”,它适用于基本级别,但子City节点仍然认为需要保存更改(在现实世界中,对象模型要复杂得多) ,但这至少会编译,而不需要完整的源代码) public class Office { [XmlAttribute(“IsHq”)] public bool IsHeadquarters { get; set; } [XmlElement] public string Street { get; set; } [XmlElement] public Town Town { get; set; } protected virtual void OnLoaded() {} public static OfficeCollection Search() { OfficeCollection retval […]

浮点不准确性有多确定性?

我知道浮点计算存在准确性问题,并且有很多问题可以解释原因。 我的问题是,如果我运行两次相同的计算,我是否可以始终依赖它来产生相同的结果? 哪些因素可能会影响这个? 计算之间的时间? CPU的当前状态? 不同的硬件? 语言/平台/操作系统? 太阳耀斑? 我有一个简单的物理模拟,并希望记录会话,以便他们可以重播。 如果可以依赖计算,那么我只需要记录初始状态加上任何用户输入,我应该始终能够完全重现最终状态。 如果计算不准确,那么在开始时错误可能会在模拟结束时产生巨大影响。 我目前在Silverlight工作,但有兴趣知道这个问题是否可以回答一般。 更新:初始答案表明是,但显然这并不完全清楚,如所选答案的评论中所述。 看起来我将不得不做一些测试,看看会发生什么。