当使用LeftBarItems和RightBarItems时,我遇到了过多的UIBarButtonItem填充/间距(见下图).UIBarButtonItems上使用的图标不包含额外的填充.所以我想知道是什么导致了这个?
我有时需要将更大的JSON请求有效负载发布到我的ASP.Net核心控制器.有效载荷的大小保证(至少在我看来)压缩它.由于ASP.Net核心控制器似乎不支持开箱即用的压缩请求内容,因此我推出了自己的中间件.
实现这个是微不足道的,我不确定我是否在这里遗漏了一些东西.要么是因为有一种内置的方法来实现这一目标,要么是因为我从安全性或性能角度出现了一些重大错误?
public class GzipRequestContentEncodingMiddleware
{
public GzipRequestContentEncodingMiddleware(RequestDelegate next)
{
if (next == null)
throw new ArgumentNullException(nameof(next));
this.next = next;
}
private readonly RequestDelegate next;
private const string ContentEncodingHeader = "Content-Encoding";
private const string ContentEncodingGzip = "gzip";
private const string ContentEncodingDeflate = "deflate";
public async Task Invoke(HttpContext context)
{
if (context.Request.Headers.Keys.Contains(ContentEncodingHeader) &&
(context.Request.Headers[ContentEncodingHeader] == ContentEncodingGzip ||
context.Request.Headers[ContentEncodingHeader] == ContentEncodingDeflate))
{
var contentEncoding = context.Request.Headers[ContentEncodingHeader];
context.Request.Headers.Remove(ContentEncodingHeader);
var destination = new MemoryStream();
using (var decompressor = contentEncoding == ContentEncodingGzip
? (Stream) new …
Run Code Online (Sandbox Code Playgroud) 我想发布我的应用程序的不同风格,并希望在手机上显示的应用程序名称中指出这一点.据我所知,Silverlight Phone Apps的名称完全取决于WMAppManifest.xml.因此,我想基于我的构建配置在构建时修改应用程序标题.有什么建议?
Windows Azure(6月7日宣布)的其他新功能似乎缺少的是能够在预留实例模式下为网站群集的预留实例定义分布式缓存.
截至目前,似乎只能为独立的Webroro或工作者角色创建分布式缓存.有没有人知道解决方法或知道这是否会发生?
我问这个的原因是因为它迫使我为缓存创建一个专门的工作者角色,因为我受到成本的限制,我只能为缓存支付另外三个实例.这给我留下了一个不容错的缓存服务,实际上我托管网站的三个Webroles将是a)容错的b)可以为分布式缓存贡献足够的内存,我可以获得更大的缓存,而不需要一个点失败与单个缓存工作者一样.
在处理UICollectionView
我的应用程序时,我遇到了一个与重新加载数据有关的奇怪问题.经过大量的调试和分析日志后,我得出的结论是,如果reloadData
紧接着是insertItemsAtIndexPaths
下面的可怕错误,则保证会发生:
名称:
NSInternalInconsistencyException
原因:无效更新:第0部分中的项目数无效.更新(1)后现有部分中包含的项目数必须等于更新前该部分中包含的项目数(1),以及或减去从该部分插入或删除的项目数(插入1个)...
他们只有这种方式才能始终如一地发生在内部UICollectionView
,reloadData
当呼叫insertItemsAtIndexPaths
到达时仍然很忙.collectionView:numberOfItemsInSection
在insertItemsAtIndexPaths
完成之前连续两次调用" " 这一事实似乎支持这一事实,因为在调用其他情况下,该方法永远不会连续调用两次.
有没有人看到类似的行为或可以确认我的分析,甚至建议一个正确的解决方法?
更新:任何是的我确保所有相关的调用都发生在主线程上.
更新2:由于进入这种情况背后的推理受到质疑:我正在使用Monotouch,并且有问题的代码旨在保持通用的.Net Collections 将此事件发送到适当的调用以保持UICollectionView绑定到集合同步中.清除源集合后,它会对Reset操作作出反应,然后在项目插入其中时执行一个或多个Add操作,这会导致上述问题.希望这可以帮助.
在他的"编程WCF服务"一书中,Juval Lowry表达了对使用Singleton Services的担忧,因为它具有性能影响.
在我的一个项目中,我正在使用像这样声明的无状态单例WCF服务:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple)]
public class FooService : IFoo
{
}
Run Code Online (Sandbox Code Playgroud)
通过httpsTransport从多个Silverlight客户端访问该服务.我选择了单例,因为我认为没有必要在不需要时为系统增加GC开销.我是否遗漏了某些内容,或者这不应该是实现无状态服务的最有效方式,如果不比PerCall实例化服务更快,它同样快速?
我决定在MonoDroid和MonoTouch中稍微涉足并将我的一个WP7应用程序作为入门者.我真的想重用我现有的ViewModel,但由于Android和iOS似乎都没有XAML强大的数据绑定,我想问一下之前是否有人走过这条路线并且可以推荐一些最佳实践或现有解决方案.
我正在使用针对5.0 SDK构建的应用程序来定位IOS 4.3和5.0,并且只有当应用程序在iOS5设备上运行时才想添加对iOS5中引入的Twitter功能的支持.在运行时可靠地测试这些OS功能的可用性而不会导致应用程序崩溃的推荐方法是什么?
我知道你在Objective-C中使用respondsToSelector来做到这一点,但它是如何在C#中完成的?
我在我的ASP.Net MVC 5/WebApi 2项目中使用OWIN的外部认证提供程序,我遇到了一个奇怪的问题.
登录工作流程就像在SO上一样.用户点击登录页面,选择提供商并登录.我的问题是首次点击提供商会重定向回相同的登录页面:
http://localhost:57291/Account/Login?ReturnUrl=%2fAccount%2fExternalLogin
Run Code Online (Sandbox Code Playgroud)
如果ExternalLogin操作缺少AllowAnonymous属性,这将是有意义的.
当用户第二次点击时一切正常.
我也尝试过使用不同的浏览器,问题在Chrome,IE11和Firefox中都是一致的.
Login.cshtml:
@using (Html.BeginForm("ExternalLogin", "Account", new { ReturnUrl = ViewBag.ReturnUrl }))
{
<fieldset>
<legend>@Strings.ExternalAuthenticationProvidersDescription</legend>
<p>
@foreach (var p in Model.ExternalAuthenticationProviders)
{
<button type="submit" name="provider" value="@p.AuthenticationType" title="Log in using your @p.Caption account">@p.Caption</button>
}
</p>
</fieldset>
}
Run Code Online (Sandbox Code Playgroud)
AccountController.cs
public class AccountController : Controller
{
...
[AllowAnonymous]
[HttpPost]
public ActionResult ExternalLogin(string provider, string returnUrl)
{
return new ChallengeResult(provider, Url.Action("ExternalLoginCallback", "Account", new
{
loginProvider = provider,
ReturnUrl = returnUrl
}));
}
...
}
Run Code Online (Sandbox Code Playgroud)
ChallengeResult.cs:
public class …
Run Code Online (Sandbox Code Playgroud) c# ×4
xamarin.ios ×3
ios ×2
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
azure ×1
compression ×1
grails ×1
hibernate ×1
ios7 ×1
iphone ×1
mono ×1
mvvm ×1
objective-c ×1
owin ×1
silverlight ×1
versioning ×1
wcf ×1