我听说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)
我做错了吗?
我有一个具有UITabBarController的MonoTouch应用程序,每个选项卡都是UINavigationController.其中一些包装UIViewController,它添加一个UITableView和一个UIToolbar,其他包装一个DialogViewController.
到目前为止,我没有太多关注内存/视图管理(我一直在模拟器中运行),但是当我开始在真实设备上进行测试时,我注意到由于内存条件不足导致的一些故障(例如,应用程序被终止,我从我的日志中发现在此之前调用了DidReceiveMemoryWarning).其他时候我注意到应用程序响应性的长时间暂停,我假设是由于GC循环.
到目前为止,我一直在假设我推送到导航堆栈的每个DialogViewController都会清理它的视图以及当我弹出它时分配的其他东西.但我开始意识到它可能并不那么容易,而且我需要开始调用Dispose().
有没有关于如何使用MonoTouch和MT.D处理资源和内存的最佳实践?特别:
我为这个问题的一般性质道歉 - 这似乎是白皮书的一个好主题,但我找不到任何......
更新:使问题更具体:在使用Instruments和Xamarin Heapshot Profiler之后,我很清楚当用户弹出导航堆栈时我正在泄漏UIViewControllers.Rolf 为此提出了一个错误,它有两个重复,所以这不仅仅是我的真正问题.不幸的是,我没有找到泄漏的UIViewControllers的好方法 - 我还没有找到一个调用Dispose()的好地方.释放ViewDidLoad分配的资源的自然位置在ViewDidUnload消息中,但它永远不会在模拟器上调用,因此我的内存占用量不断增长.在设备上,我确实看到了DidReceiveMemoryWarning,但我不愿意使用它作为释放我的viewcontroller及其资源的地方,因为我无法保证iOS实际上会卸载我的视图,因此无法保证我的ViewDidLoad会再次被调用要么(导致ViewDidAppear需要针对其底层资源处置的情况进行防御性编码).我很想得到一些关于如何摆脱这个烂摊子的建议......
我发现了对SharpNLP(基于Java的OpenNLP的端口)和Proxem的Antelope的引用.我正在寻找创建句子的完整解析树(词性标注),以及日期/时间和位置的名称查找.
SharpNLP库自2007年以来似乎处于非活动状态,看起来Antelope库最后一次更新是在2009年.前者是LGPL,后者似乎需要商业许可证,但安装程序自行将许可证描述为"未指定".
是否有适用于.NET的现代NLP库?NLP有更好的平台选择吗?(对于我来说,拥有一个优秀的NLP实现比坚持平台选择更重要).
我正在尝试使用新的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) 我的服务部署到几个不同的环境(多个开发环境以及生产环境).服务代码需要在运行时找出当前部署的URL.
是否有一种简单的方法来检索Azure角色的面向外部的URL?如果Web角色正在处理请求,则可以直接查看HttpContext.Current.Request并删除URL.但我还没有找到办法为工人角色做这件事.你认为有一种方法可以从RoleEnvironment获得这个,但我能找到的最接近的东西(RoleEnvironment.CurrentRoleInstance.RoleInstanceEndpoints)似乎返回内部IP /端口信息,而不是面向外部的DNS名称.
我总是可以将部署URL存储在ServiceConfiguration键中(即将它静态存储在每个ServiceConfiguration.???.cscfg中),但我希望避免在配置文件中对此进行硬编码.有没有办法以编程方式执行此操作?
我有一个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做到这一点?这必须是一个常见问题解答,但谷歌搜索一小时后我找不到它:-)
我在Windows Phone 7上运行了很好的Dragon Mobile SDK,我想获得适用于iOS的等效功能.由于SDK包装了麦克风,因此在我的MonoTouch项目中使用.NET程序集是不可能的(即使我确实有源代码).看来,最好的方法是创建一个绑定库(正如Miguel 在这里描述的那样).
它确实看起来像很多工作,如果有人已经完成它,我会喜欢重复使用而不是重新发明轮子......
我的应用程序构建/链接/部署到模拟器很好,但我只是第一次尝试将应用程序构建/部署到真实设备,我收到链接器故障.
我不使用System.Console或ConsoleColor在我的应用程序中的任何地方,但我确实有相当数量的代码使用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)
ios ×3
xamarin.ios ×3
.net ×2
azure ×2
c# ×2
aot ×1
jit ×1
json.net ×1
monodevelop ×1
nlp ×1
wcf ×1
wcf-web-api ×1