Tag: .net

ServiceStack IReturn

我正在看两周前发布的新api。 这好像是 ReqDTO : IReturn<List> { //… } “IReturn”位似乎是可选的? RazorRockstars演示项目中的DTO在没有它的情况下工作。

任务和垃圾收集有什么问题?

在使用从任务并行库派生的API和类时,开发人员何时需要关注垃圾收集的影响? .NET Task实例在运行期间是否超出范围? ,似乎给人一种安全感,你不必担心将任务保持在范围内。 然而,问题似乎仅限于在ThreadPool上运行的任务,然后它们由ThreadPool rooted 。 但是,如果我正确理解这篇MSDN博客文章 ,那么SO问题的建议通常不适用,因为TaskCompletionSource中的任务不是类似的rooted 。 是否只关注TaskCompletionSource的直接使用时间? 但是,在使用API​​时,您不知道任务的来源。 如果提供的Task来自TaskCompletionSource或其他一些非根源,您是否需要担心存储对continuation的引用? 由于需要考虑任务是否已植根(Async I / O Tasks是否为root?),这似乎很快变得不方便和复杂。 我很难找到关于主题的信息,但它是一个很受欢迎的库,我觉得我不应该阅读反编译的源代码来确定我是否需要担心垃圾收集器的竞争条件,所以我想我必须是遗失或误解的东西。

如何调用(非虚拟)虚拟方法的原始实现?

我有以下情况: 在第三方库中(无法修改): class A { public virtual void M() {} } class B : A { public override void M() {} } 在我自己的代码中: class C : B { public override void M() {} } 从C的方法M的实现,我想调用A (但不是B的!!)。 我可以吗? 接受任何技巧,包括反思。 我已经尝试过reflection,但是使用从typeof(A)获得的MethodInfo仍然会生成一个虚拟调用(调用C的实现,后续堆栈溢出)。 由于重新实现B的复杂性,从A导出C是不可能的。

Windows窗体:通过部分透明的always-on-top窗口传递点击次数

我正在设计一个始终在屏幕上并且大约20%不透明的窗口。 它被设计成一种状态窗口,所以它始终位于顶部,但我希望人们能够通过窗口点击下面的任何其他应用程序。 我现在输入的是这个SOpost顶部的不透明窗口: 看到灰色吧? 这会阻止我在此刻输入标签框。

解码百分比编码的字符串c#.net

如何解码如下字符串: NAME1 = ABC&用户id = DEF&NAME2 = ZYX&有效载荷=%3cSTAT +的xmlns%3axsi%3D%22http%3A%2F%2fwww.w3.org%2f2001%2fXMLSchema实例%22%3E%3cREQ … 背景:我接受HTTP POST(基本上是名称值对),然后将字节数组转换为字符串: Encoding.UTF8.GetString(response, 0, response.Length); 我已经尝试过WebUtility和HttpUtility的HtmlDecode方法,但似乎得到了相同的字符串。

c#中的异步属性

在我的Windows 8应用程序中有一个全局类,其中有一些静态属性,如: public class EnvironmentEx { public static User CurrentUser { get; set; } //and some other static properties //notice this one public static StorageFolder AppRootFolder { get { return KnownFolders.DocumentsLibrary .CreateFolderAsync(“theApp”, CreationCollisionOption.OpenIfExists) .GetResults(); } } } 您可以看到我想在项目的其他位置使用应用程序根文件夹,因此我将其设置为静态属性。 在getter中,我需要确保根文件夹存在,否则创建它。 但CreateFolderAsync是一个异步方法,这里我需要一个同步操作。 我尝试了GetResults()但它抛出了一个InvalidOperationException 。 什么是正确的实施? (package.appmanifest已正确配置,实际创建了该文件夹。)

JSON计数仅返回1而不是2

我有这行代码(总是返回1): int rowsCount = token[“rows”].Count(); 令牌[“行”]是: { “component”: [ { “tag”: “CUT”, “missingValue”: “”, “format”: “Cont”, “varName”: “GPA”, “label”: “Grade point average”, “element”: [ { “startValue”: “1”, “endValue”: “249”, “label”: “Lower than 2.50” }, { “startValue”: “250”, “endValue”: “299”, “label”: “2.50 – 2.99” }, { “startValue”: “300”, “endValue”: “349”, “label”: “3.00 – 3.49” }, { […]

我应该如何从任务UI线程更新?

我有一项任务,执行一些繁重的工作。 我需要将它的结果LogContent到LogContent Task<Tuple<SupportedComunicationFormats, List<Tuple>>>.Factory .StartNew(() => DoWork(dlg.FileName)) .ContinueWith(obj => LogContent = obj.Result); 这是属性: public Tuple<SupportedComunicationFormats, List<Tuple>> LogContent { get { return _logContent; } private set { _logContent = value; if (_logContent != null) { string entry = string.Format(“Recognized {0} log file”,_logContent.Item1); _traceEntryQueue.AddEntry(Origin.Internal, entry); } } } 问题是_traceEntryQueue是绑定到UI的数据,因为我会在这样的代码上有exception。 所以,我的问题是如何让它正常工作?

C#mongo使用json字符串查询

这看起来很基本,我确信我只是忽略了某个地方的某个阶级或方法,但对于我的生活,我找不到它。 我有一个像这样的json字符串: { SendId: 4, “Events.Code” : { $all : [2], $nin : [3] } } 我可以在mongo shell中对find()或count()运行它,并得到我正在寻找的东西。 在C#中处理这个问题最简单的方法是什么? 这是我发现的: 我发现的方法都想要一个IMongoQuery ,它只是一个标记接口 BsonDocument有一个很好的Parse方法,但它没有实现IMongoQuery QueryDocumentinheritance自BsonDocument ,它确实实现了IMongoQuery ,但它没有自己的Parse方法,我无法将QueryDocument转换为BsonDocument Aggregation框架采用BsonDocument [],但有时我只想要一个简单的Find或Count操作 其中一些查询很大且很粗糙,我不想在Query构建器类中一次构建它们 如果数据库处理json文档,并且我可以在shell中运行这些东西,是不是有某种方法可以通过驱动程序运行它?

是否可以覆盖ASP.NET MVC中的默认行为?

我想知道是否/如何覆盖ASP.NET MVC中的默认[Authorize]行为。 我知道我可以创建一个新的Action Filter,创建自己的属性等等; 我只是感兴趣,如果我可以简单地更改[授权]行为并用我自己的代码替换它的工作? 编辑 :男孩和女孩。 感谢您的意见,但正如我所写,我不打算引入新的[XYZAuthorize]属性。 我知道怎么做。 我想保留[授权]符号,但只是改变它的工作原理。