小编Omr*_*itt的帖子

Json.NET能否对流进行序列化/反序列化?

我听说Json.NET比DataContractJsonSerializer更快,想试一试......

但我在JsonConvert上找不到任何采用流而不是字符串的方法.

例如,为了在WinPhone上反序列化包含JSON的文件,我使用以下代码将文件内容读入字符串,然后反序列化为JSON.在我的(非常临时)测试中,使用DataContractJsonSerializer直接从流中反序列化似乎要慢4倍...

// DCJS
DataContractJsonSerializer dc = new DataContractJsonSerializer(typeof(Constants));
Constants constants = (Constants)dc.ReadObject(stream);

// JSON.NET
string json = new StreamReader(stream).ReadToEnd();
Constants constants = JsonConvert.DeserializeObject<Constants>(json);
Run Code Online (Sandbox Code Playgroud)

我做错了吗?

.net serialization json.net

137
推荐指数
5
解决办法
14万
查看次数

使用MonoTouch和MonoTouch.Dialog进行内存/资源管理

我有一个具有UITabBarController的MonoTouch应用程序,每个选项卡都是UINavigationController.其中一些包装UIViewController,它添加一个UITableView和一个UIToolbar,其他包装一个DialogViewController.

到目前为止,我没有太多关注内存/视图管理(我一直在模拟器中运行),但是当我开始在真实设备上进行测试时,我注意到由于内存条件不足导致的一些故障(例如,应用程序被终止,我从我的日志中发现在此之前调用了DidReceiveMemoryWarning).其他时候我注意到应用程序响应性的长时间暂停,我假设是由于GC循环.

到目前为止,我一直在假设我推送到导航堆栈的每个DialogViewController都会清理它的视图以及当我弹出它时分配的其他东西.但我开始意识到它可能并不那么容易,而且我需要开始调用Dispose().

有没有关于如何使用MonoTouch和MT.D处理资源和内存的最佳实践?特别:

  • 弹出后,是否需要在DialogViewController上调用Dispose?如果是这样,哪里最好这样做?(ViewDidUnload?DidReceiveMemoryWarning?析构函数?)
  • DVC是否会自动处理传递给它的RootElement等对象,还是我需要担心这个问题?它作为呈现表格单元格的一部分加载的UIImages如何(例如StyledStringElement)?
  • 有没有我应该调用GC.Collect()以更好地分隔集合的地方,以便在GC确实发生时不会在响应性方面受到一点打击?
  • 分代垃圾收集器是否有助于解决交互性问题,是否足够稳定以便在生产应用程序中使用?(我相信它仍然被称为MonoDevelop 3.0.2/MT 4.3.3中的"实验性")
  • 在DidReceiveMemoryWarning中我需要做些什么来降低iOS拍摄我的应用程序的可能性?由于每个不可见的视图控制器似乎都得到了这个调用,我假设我应该清理那个视图控制器的资源......我应该在ViewDidUnload中做同样的事情吗?
  • 我似乎没有调用我的ViewDidUnload(即使我得到了DidReceiveMemoryWarning).事实上,我不记得曾经在我的日志中看过它.如果iOS在DidReceiveMemoryWarning之后总是调用我的ViewDidUnload,我可以在ViewDidUnload中进行所有清理......在ViewDidUnload和DidReceiveMemoryWarning之间拆分清理责任的最佳方法是什么?

我为这个问题的一般性质道歉 - 这似乎是白皮书的一个好主题,但我找不到任何......

更新:使问题更具体:在使用Instruments和Xamarin Heapshot Profiler之后,我很清楚当用户弹出导航堆栈时我正在泄漏UIViewControllers.Rolf 为此提出了一个错误,它有两个重复,所以这不仅仅是我的真正问题.不幸的是,我没有找到泄漏的UIViewControllers的好方法 - 我还没有找到一个调用Dispose()的好地方.释放ViewDidLoad分配的资源的自然位置在ViewDidUnload消息中,但它永远不会在模拟器上调用,因此我的内存占用量不断增长.在设备上,我确实看到了DidReceiveMemoryWarning,但我不愿意使用它作为释放我的viewcontroller及其资源的地方,因为我无法保证iOS实际上会卸载我的视图,因此无法保证我的ViewDidLoad会再次被调用要么(导致ViewDidAppear需要针对其底层资源处置的情况进行防御性编码).我很想得到一些关于如何摆脱这个烂摊子的建议......

memory-management xamarin.ios ios monotouch.dialog

19
推荐指数
1
解决办法
3174
查看次数

.NET的NLP框架

我发现了对SharpNLP(基于Java的OpenNLP的端口)和Proxem的Antelope的引用.我正在寻找创建句子的完整解析树(词性标注),以及日期/时间和位置的名称查找.

SharpNLP库自2007年以来似乎处于非活动状态,看起来Antelope库最后一次更新是在2009年.前者是LGPL,后者似乎需要商业许可证,但安装程序自行将许可证描述为"未指定".

是否有适用于.NET的现代NLP库?NLP有更好的平台选择吗?(对于我来说,拥有一个优秀的NLP实现比坚持平台选择更重要).

.net nlp

9
推荐指数
1
解决办法
4280
查看次数

ASP.NET WebApi SelfHost服务在HTTP URL注册时失败

我正在尝试使用新的Microsoft.AspNet.WebApi.SelfHost NuGet包在Azure辅助角色上托管ASP.NET WebApi端点.我的worker的Run()代码看起来大致如下:

// Endpoint is defined as in ServiceDefinition.csdef as 
//   HTTP, external port 8080, internal port 8080 (or 8081 - error both ways)
RoleInstanceEndpoint externalEndPoint =
    RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint"]; 
string baseAddress= String.Format("http://{0}", externalEndPoint.IPEndpoint);
var maxsize = 1024 * 1024;  
var config = new HttpSelfHostConfiguration(baseAddress) 
{ 
    MaxBufferSize = maxsize, MaxReceivedMessageSize = maxsize 
};
config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

// Create and open the server
var server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();

// keep the …
Run Code Online (Sandbox Code Playgroud)

c# wcf azure wcf-web-api asp.net-web-api

7
推荐指数
1
解决办法
4843
查看次数

检索Azure(工作人员)角色的DNS URL

我的服务部署到几个不同的环境(多个开发环境以及生产环境).服务代码需要在运行时找出当前部署的URL.

是否有一种简单的方法来检索Azure角色的面向外部的URL?如果Web角色正在处理请求,则可以直接查看HttpContext.Current.Request并删除URL.但我还没有找到办法为工人角色做这件事.你认为有一种方法可以从RoleEnvironment获得这个,但我能找到的最接近的东西(RoleEnvironment.CurrentRoleInstance.RoleInstanceEndpoints)似乎返回内部IP /端口信息,而不是面向外部的DNS名称.

我总是可以将部署URL存储在ServiceConfiguration键中(即将它静态存储在每个ServiceConfiguration.???.cscfg中),但我希望避免在配置文件中对此进行硬编码.有没有办法以编程方式执行此操作?

azure azure-configuration

5
推荐指数
1
解决办法
535
查看次数

在代码第一实体框架4.3中将自联接映射到集合

我有一个POCO类映射到这样定义的自连接表:

CREATE TABLE [dbo].[GalleryCategories](
    [CategoryID] [int] IDENTITY(0,1) NOT NULL PRIMARY KEY CLUSTERED,
    [Name] [nvarchar](256) NOT NULL,
    [ParentID] [int] NULL REFERENCES [dbo].[GalleryCategories] ([CategoryID]) ON DELETE NO ACTION ON UPDATE NO ACTION, 
)
Run Code Online (Sandbox Code Playgroud)

我知道有一种方法可以使用模型构建器来定义关系,以引用来自子项的父项...(例如,像这样)

但我试图绘制的课程看起来像这样......

public class GalleryCategory
{
    [Key]
    public int CategoryID { get; set; }
    public string Name { get; set; }
    public int? ParentID { get; set; }
    public List<Category> Subcategories { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

换句话说,我正在尝试使用所有子项填充子类别 - 即遍历层次结构,而不是层次结构.

有没有办法用EF做到这一点?这必须是一个常见问题解答,但谷歌搜索一小时后我找不到它:-)

c# entity-framework entity-framework-4.3

4
推荐指数
1
解决办法
4619
查看次数

有没有人为Nuance Dragon Mobile Speech SDK for iOS创建了MonoTouch绑定?

我在Windows Phone 7上运行了很好的Dragon Mobile SDK,我想获得适用于iOS的等效功能.由于SDK包装了麦克风,因此在我的MonoTouch项目中使用.NET程序集是不可能的(即使我确实有源代码).看来,最好的方法是创建一个绑定库(正如Miguel 在这里描述的那样).

它确实看起来像很多工作,如果有人已经完成它,我会喜欢重复使用而不是重新发明轮子......

speech-recognition xamarin.ios ios

3
推荐指数
1
解决办法
3927
查看次数

MonoTouch链接器无法解析System.Void System.Console :: set_ForegroundColor(System.ConsoleColor)

我的应用程序构建/链接/部署到模拟器很好,但我只是第一次尝试将应用程序构建/部署到真实设备,我收到链接器故障.

我不使用System.ConsoleConsoleColor在我的应用程序中的任何地方,但我确实有相当数量的代码使用UIColor,我想知道这里是否有一些MT依赖.

我正在使用最新的东西--MonoDevelop 2.8.6.5和MonoTouch 5.2.5.

编译为本机代码/ Developer/MonoTouch/usr/bin/mtouch -sdkroot"/ Developer"-v --nomanifest --nosign -dev"/Users/ogazitt/zaplify/bin/iPhone/Debug/iphone.app"-r "/Users/ogazitt/zaplify/bin/iPhone/Debug/BuiltSteady.Zaplify.Devices.ClientEntities.dll"-r"/Users/ogazitt/zaplify/bin/iPhone/Debug/Utilities.dll"-r"/ Users/ogazitt/zaplify/bin/iPhone/Debug/BuiltSteady.Zaplify.Devices.ClientViewModels.dll"-r"/Developer/MonoTouch/usr/lib/mono/2.1/System.dll"-r"/ Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll"-r"/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll"-r"/Developer/MonoTouch/usr/lib/mono/2.1/ monotouch.dll"-r"/Developer/MonoTouch/usr/lib/mono/2.1/MonoTouch.Dialog-1.dll"-debug -profiling -linksdkonly -sdk"5.0""/ Users/ogazitt/zaplify/bin/iPhone /Debug/zaplifyiphone.exe"使用框架的MonoTouch 5.2.5版:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk复制/Users/ogazitt/zaplify/bin/iPhone/Debug/zaplifyiphone.exe到/ Users/ogazitt /zaplify/bin/iPhone/Debug/iphone.app/zaplifyiphone.exe复制/Users/ogazitt/zaplify/bin/iPhone/Debug/SharpCompress.3.5.dll到/ Users/ogazitt/zaplify/bin/iPhone/Debug/iphone .app/SharpCompress.3.5.dll复制/Users/ogazitt/zaplify/bin/iPhone/Debug/Newtonsoft.Json.MonoTouch.dll到/Users/ogazitt/zaplify/bin/iPhone/Debug/iphone.app/Newtonsoft.Json .MonoTouch.dll链接SDK仅用于汇编/Users/ogazitt/zaplify/bin/iPhone/Debug/zaplifyiphone.exe到/Users/ogazitt/zaplify/bin/iPhone/Debug/iphone.app错误MT2002:无法解析参考: System.Void System.Console :: set_ForegroundColor(System.ConsoleColor)

jit monodevelop xamarin.ios aot ios

1
推荐指数
1
解决办法
1062
查看次数