小编Nei*_*eil的帖子

如何在uiwebview iOS中处理YouTube视频事件(已启动,已完成等)

目前我正在使用新的iframe API在YouTube上的uiwebview中嵌入YouTube视频,并且我已经能够在没有用户交互的情况下自动播放.在iframe API中,它描述了如何使用onstatechange事件但在我的应用程序中它似乎不起作用,不幸的是我在uiwebview中看不到任何调试.

我只是想能够检测到视频何时结束,你有什么建议吗?有没有人得到它的工作?

youtube iframe events uiwebview ios

20
推荐指数
1
解决办法
2万
查看次数

什么是WCF调度管道消息流

我正在努力更好地了解WCF的调度过程,特别是对各种可扩展性点的影响和影响.从底部列出的网页看,一旦消息通过通道堆栈传递给调度程序,WCF将按照所述顺序执行以下操作.

  1. 消息检查器
  2. 操作选择器
  3. 邮件格式
  4. 参数检查器
  5. 操作祈求者.

我试图找到一些选项来解决我遇到的问题,我想到的一种方法是使用Message Inspector,Operation Selector,Message Formatting和Operation Invoker的组合.不幸的是,我的观察似乎表明执行的顺序如下:

  1. 操作选择器
  2. 消息检查器
  3. Operation Invoker(AllocateInputs())
  4. 邮件格式
  5. 参数检查器
  6. Operation Invoker(Invoke())

我可以理解在格式化消息之前调用自定义调用者AllocateInputs()方法的细微差别,因为消息格式化部分基本上将给定消息反序列化为一组方法参数,以传递给适当的操作和调用者的AllocateInputs( )方法指定预期的参数数量.

抛出我的部分是Message Inspector和Operation Selector之间的序列反转.对于我来说,消息检查器首先运行,因为它们对消息起作用,而操作选择器确定消息所针对的服务操作,这听起来合乎逻辑.

问题:

  • 这是由于WCF的不同版本或版本?
  • 这是因为WCF实际上没有指定可扩展点执行顺序吗?

参考页:
扩展WCF以支持自定义数据格式 - Zulfiqar的博客
使用自定义行为扩展WCF - MSDN服务站2007年12月
消息流拦截点 - Nicholas Allen的Indigo博客

注意:对于不提供链接,我道歉,因为我还是菜鸟,所以不能有多个链接.=)

wcf wcf-extensions

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

Asp.Net MVC行动 - 关注点分离/单一责任原则

在计算机科学中,我们被教导每种方法应该只做一件事,一件事.我有点困惑,然后我们看到MVC行为如下所示作为良好实践的例子:

    [AcceptVerbs(HttpVerbs.Post), Authorize]
    public ActionResult Edit(int id, FormCollection collection) {

        Dinner dinner = dinnerRepository.GetDinner(id);

        if (!dinner.IsHostedBy(User.Identity.Name))
            return View("InvalidOwner");

        try {
            UpdateModel(dinner);

            dinnerRepository.Save();

            return RedirectToAction("Details", new { id=dinner.DinnerID });
        }
        catch {
            ModelState.AddModelErrors(dinner.GetRuleViolations());

            return View(new DinnerFormViewModel(dinner));
        }
    }
Run Code Online (Sandbox Code Playgroud)

基本上这段代码提供了很多功能:

  1. 定义如何访问Action - 仅限Post
  2. 定义谁可以访问Action - Authorize
  3. 访问持久性机制 - dinnerRepository
  4. 访问状态信息 - (User.Identity.Name)
  5. 将NameValueCollection转换为强类型对象 - UpdateModel()
  6. 为每个指定3个可能的ActionResults和内容--InvalidOwner/Details/Edit视图

对我来说,这似乎对一种方法的责任太多了.它也是一个相当简单的动作,即它不处理常见的情况,如:

  1. 检查业务规则 - "永远不要信任用户输入"
  2. 导航路径 - 成功保存后始终返回"详细信息"
  3. 不同的返回类型 - 有人想从网格中调用"编辑"并需要一个JsonResult吗?
  4. 更好的错误处理 - 如果在GetDinner(id)期间无法访问数据库,则为YSOD
  5. 构建其他视图数据 - 用于下拉列表的SelectLists

不要太提及围绕这种方法所需的测试量,即FormCollection/UserIdentity/Authorization Provider/Repository/etc的模拟/伪造.

我的问题是我们如何避免在控制器操作中塞入如此多的东西?

我倾向于认为"意见"是一个伟大的概念,尤其是"Thunderdome Principle".虽然我非常尊重参与构建FubuMVC的人 …

asp.net-mvc separation-of-concerns

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

ASP.NET MVC UpdateModel为空属性

鉴于以下模型,

public class A
{
    public string Name { get; set; }
}

public class B
{
    public string Address { get; set; }
    public A InstanceOfA { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

视图,

<%= Html.TextBox("A.Name") %>
Run Code Online (Sandbox Code Playgroud)

和控制器

UpdateModel<B>(b, collection.ToValueProvider());
Run Code Online (Sandbox Code Playgroud)

我的b实例将包含A的属性,其中包含Name的空字符串.

无论如何,如果没有为name输入值,UpdateModel是否将A属性设置为null?

为了澄清,这是一个简单的案例,我的真实世界场景包含具有数百种此类属性的数据模型.这些数据模型的定义不在我手中.因此,我需要针对一般情况的解决方案,即如果没有输入值,则不创建属性.

进一步澄清:我需要这个在编辑场景中工作,也就是说,将A.Name设置为"foo"的b实例编辑为将A.Name设置为"",我希望A为null.

asp.net-mvc modelbinders

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

Javascript框架流行度

是否有任何资源比较各种javascript框架的采用率类似于tcpi?基本上,在时间线上使用特定框架的站点数量是理想的.

javascript jquery yui mootools scriptaculous

2
推荐指数
2
解决办法
3010
查看次数

c#动态对象运行时类型检查

显然,无论GetADynamicThing()返回的对象类型如何,以下内容在c#4.0中都有效

dynamic d = GetADynamicThing();
d.Foo();
Run Code Online (Sandbox Code Playgroud)

如果d的运行时类型不包含方法Foo(),则抛出RunTimeBinderException.

是否有一种简单的方法可以确定D上是否存在Foo()?

否则,我们会坚持做旧学校对象的反思,或依靠try-catch.不确定我喜欢哪种方法.

更新:所以我们目前有3个选项:

  1. 反射
  2. 捕获例外
  3. 希望GetADynamicThing()返回您期望它返回的内容

3号似乎是动态的目标用法,在COM情况下很好.我之所以问这个问题的原因是为了回应做这样的事情,即使用一些任意创建的对象的方法.这似乎是使用动态的错误情况.

c# dynamic

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