Tag: C#的

Xamarin iOS内存无处不在

我们在过去的8个月里一直在使用Xamarin iOS,并开发了一个具有许多屏幕,function,嵌套控件的非平凡的企业应用程序。 我们已经做了我们自己的MVVM拱门,跨平台BLL&DAL“推荐”。 我们在Android之间共享代码,甚至在我们的networking产品上使用BLL / DAL。 除了现在在项目的发布阶段,我们发现在Xamarin基于iOS的应用程序中无处不在的内存泄漏。 我们已经遵循了所有的“准则”来解决这个问题,但现实情况是,C#GC和Obj-C ARC似乎是不兼容的垃圾收集机制,它们以目前的方式互相叠加在单点触摸平台上。 我们发现的现实是,对于任何非平凡的应用程序,本机对象和被pipe理对象之间的硬周期将会发生,并且频繁出现。 例如,在使用lambdaexpression式或手势识别器的任何地方发生这种情况都非常容易。 加上MVVM的复杂性,这几乎是一个保证。 错过其中的一种情况,整个对象的graphics将永远不会被收集。 这些图表会引诱其他物体并像癌症一样长大,最终导致iOS的迅速和无情的消灭。 Xamarin的回答是对这个问题毫无兴趣的推迟,以及“开发者应该避免这些情况”的不切实际的期望。 仔细考虑这一点,可以看出这是垃圾收集在Xamarin中基本上被破坏了 。 现在我认识到,在传统的c#.NET意义上,你并不真正在Xamarin iOS中获得“垃圾收集”。 你需要雇用“垃圾维护”模式,实际上是让GC移动并完成工作,即使这样,它也永远不会是完美的 – 不确定性。 我的公司投入了大量资金,试图阻止我们的应用程序崩溃和/或内存不足。 我们基本上必须明确地recursion处理每一个该死的东西,并在应用程序中实施垃圾维护模式,只是为了停止崩溃,并有一个可行的产品,我们可以出售。 我们的客户是支持和宽容的,但我们知道这不能永远持续下去。 我们希望Xamarin有一个专门的团队在这个问题上工作,并一劳永逸。 不幸的是,看起来不像。 问题是,我们的经验是用Xamarin编写的非平凡企业级应用程序的例外规则吗? UPDATE 请参阅DisposeEx方法和解决scheme的答案。

C ++ 11标准是否要求通过一个常量unordered_container访问元素的两次迭代以相同的顺序访问元素?

for (auto&& i : unordered_container) { /* … */ } for (auto&& i : unordered_container) { /* .. */ } 标准是否要求这两个循环访问相同顺序的元素(假定容器是未修改的)? 我对这个问题的分析 我读的标准和最好的我可以告诉答案是“不” 因为容器的迭代器是向前的,所以有一种语言要求a==b暗示++a==++b用于前向迭代器。 这意味着两个迭代将通过相同的path,如果他们都在同一个地方开始。 这将问题简化为标准是否需要container.begin() == container.begin() 。 我找不到任何需要的语言。

使用Fluentvalidation进行条件validation

我需要的是一种有条件地validation字段取决于是否填写其他字段的方法。 防爆。 我有一个下拉和一个相关的date字段。 如果没有设置字段,则表单应该通过validation。 但是,如果两个字段中的一个被设置,而另一个不是,那么validation应该被触发,要求设置另一个字段。 我写了自定义validation类,但它似乎是validation单个字段。 有没有一种方法来设置validation,我需要使用内置的validation器? 如果没有,是否有一个很好的方法来使用自定义validation器连接两个字段?

什么是视图引擎? 它究竟做了什么?

我开始学习ASP.NET MVC3。 所以,在网上和书本上阅读教程时,我经常碰到这个术语“查看引擎” 。 我不知道是什么 它究竟做了什么? 为什么这对我来说很重要?

在Visual Studio 2012的所有源代码文件中插入版权通告/横幅

一些谷歌search后,我发现这一点: 使用Visual Studiomacros将版权标题插入源文件 。 看起来很有希望: // <copyright file="Sample.cs" company="My Company Name"> // Copyright (c) 2012 All Rights Reserved // </copyright> // <author>Leniel Macaferi</author> // <date>08/30/2012 11:39:58 AM </date> // <summary>Class representing a Sample entity</summary> 当我尝试Tools -> Macros菜单选项时,它不再存在于VS 2012中。以下是certificate: Visual Studio 11 Developer Preview中的macros 。 他们只是放弃了这个function。 🙁 所以,我只是想知道我可以使用哪个选项来将版权信息添加到我的解决scheme中的所有现有的源代码文件使用Visual Studio 2012.是否有任何标准的方式做到这一点,使用模板文件(有关T4 templates )还是PowerShell脚本? 我可以写一些代码来迭代.cs扩展名的文件,并添加版权信息,但这不是我所追求的。 我想知道一些工具来自动化这个过程。

Request.UserHostAddress和Request.ServerVariables 之间的区别是什么?ToString()

在这里我可以使用这两种方法中的任何一种。 有什么区别,我应该使用哪一个? 方法1: string srUserIp = ""; try { srUserIp = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString(); } catch { } 方法2: string srUserIp = ""; try { srUserIp = Request.UserHostAddress.ToString(); } catch { }

在C ++中必须使用默认的函数参数吗?

void some_func(int param = get_default_param_value());

“使用”语句如何从C#转换为VB?

例如: BitmapImage bitmap = new BitmapImage(); byte[] buffer = GetHugeByteArray(); // from some external source using (MemoryStream stream = new MemoryStream(buffer, false)) { bitmap.BeginInit(); bitmap.CacheOption = BitmapCacheOption.OnLoad; bitmap.StreamSource = stream; bitmap.EndInit(); bitmap.Freeze(); } 你能告诉我更多关于using ? 编辑: 正如在JaredPar的post的评论中所讨论的,这个问题更关心的是在VS2003中Using的实现。 有人指出, Using直到.NET 2.0(VS2005)才被引入。 JaredPar发布了一个等效的解决方法。

Markdown实现C / C ++

Markdown for C或C ++的最佳实施是什么? 我通过Googlefind了这些内容,并希望能够评论哪些内容能够正常工作,哪些内容不会(以及我可能错过了哪些内容): PEG-降价 折扣 CPP-降价 libsoldout (以前称为libupskirt)

全屏部件

我怎样才能让我的部件全屏? 我试过这样的事情: void MainWindow::SetFullScreen() { // Make our window without panels this->setWindowFlags( Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint ); // Resize refer to desktop this->resize( QApplication::desktop()->size() ); this->setFocusPolicy( Qt::StrongFocus ); this->setAttribute(Qt::WA_QuitOnClose, true); qApp->processEvents(); show(); this->setFocus(); } 但小部件不在系统面板。 任何其他的想法? 操作系统:Linux