在我的应用程序中,我通过Web服务检索域对象.在Web服务数据中,我知道所有日期值都是UTC,但Web服务不会将其xs:dateTime值格式化为UTC日期.(换句话说,该字母Z不会附加到每个日期的末尾以表示UTC.)
我无法在此时更改Web服务的行为方式,但作为一种解决方法,我创建了一个方法,在Web服务中的对象被反序列化后立即调用该方法.
private void ExplicitlyMarkDateTimesAsUtc<T>(T obj) where T : class
{
Type t = obj.GetType();
// Loop through the properties.
PropertyInfo[] props = t.GetProperties();
for (int i = 0; i < props.Length; i++)
{
PropertyInfo p = props[i];
// If a property is DateTime or DateTime?, set DateTimeKind to DateTimeKind.Utc.
if (p.PropertyType == typeof(DateTime))
{
DateTime date = (DateTime)p.GetValue(obj, null);
date = DateTime.SpecifyKind(date, DateTimeKind.Utc);
p.SetValue(obj, date, null);
}
// Same check for nullable DateTime.
else if …Run Code Online (Sandbox Code Playgroud) 我有一个网络应用程序,我在那里播放视频.
我正在考虑使用HTML5 <video>元素,并确定它将允许我满足我的所有要求,除了一个:允许用户拍摄当前视频帧的快照并将其保存为光栅图像格式(即JPG).
对于这个要求,我还没有找到解决方案,对此问题的任何指导都将不胜感激.
为了帮助回答这里的问题更多细节.我将通过HTTP从服务器下载视频文件,然后在浏览器中播放它们.这不是视频流,而是在收到文件后开始播放.视频将采用MP4格式.
解决方案只需要在IE 9中运行.(虽然我希望解决方案尽可能跨浏览器/平台.)
我正在使用Internet Explorer 8中的ActiveX控件来显示一个保存文件对话框,让用户选择文件名和文件类型(jpg,gif等).这些值传递给代码,然后以不同的方法用于保存文件.不幸的是,调用对话框的方法没有返回值,文件名和文件类型作为out参数传入.
方法的签名(用Visual Basic表示)如下所示:
Public Sub SaveFileDialog( _
ByVal bstrDialogType As Variant, _
ByRef pbstrFileName As String, _
ByRef out_pvType As Long _
)
Run Code Online (Sandbox Code Playgroud)
两个ByRef参数是out参数.
我编写了以下JavaScript代码:
try
{
var saveFileName, saveFileType; // out variables
gxVideoPlayBack.SaveFileDialog("image", saveFileName, saveFileType);
alert(saveFileName); // displays "undefined"
alert(saveFileType); // displays "undefined"
}
catch(error)
{
if(!error.number === -2147221484) // User clicked cancel.
{
alert(error.message);
}
}
Run Code Online (Sandbox Code Playgroud)
代码的工作原理是ActiveX控件生成它的对话框,我可以处理错误条件,但我似乎无法弄清楚如何捕获out参数的值.
在代码中,gxVideoPlayBack是通过HTML元素对DOM中嵌入的ActiveX控件的引用.
如果JavaScript不能用于此,可以在VBScript中完成吗?
作为替代方案,我可以实现自己的对话框,但宁可使用提供的对话框.
我已经实现了一个有交易的Route.当用户通过单击"后退"按钮移出此路径时,我希望用户能够确认退出并丢失通过回滚事务所做的任何更改.
问题是,如果用户返回到路由,Ember Data会引发错误并指出:
Error: assertion failed: Models cannot belong to more than one transaction at a time.
Run Code Online (Sandbox Code Playgroud)
这是即使我在旧事务上显式调用remove()并将add()添加到新事务(请参阅下面的newTransaction()函数):
settingsDetails: Ember.Route.extend({
route: '/details',
transaction: MyApp.store.transaction(),
doBackButton: function() {
var dirty = MyApp.router.get('settingsDetailsController.content.isDirty');
var doTransition = true;
if (dirty) {
var confirmDialog = confirm('You have unsaved changes. Are you sure you want to continue ? \n\nAny chances made will be lost!');
doTransition = confirmDialog;
}
if (doTransition) {
this.doResetSettingsDetails();
MyApp.router.transitionTo('settings.settingsOverview');
}
},
newTransaction: function() {
var oldTransaction = this.get('transaction');
var newTransaction = …Run Code Online (Sandbox Code Playgroud) Sails.js Wiki清楚地描述了如何遍历模型数组并生成HTML.请参阅https://github.com/balderdashy/sails/wiki/views.但是,我不清楚如何获取详细信息视图的模型.
给定通过shell命令生成的模型:sails generate user,将会有以下路由:
/user
/user/:id
Run Code Online (Sandbox Code Playgroud)
(这:id是用模型的唯一ID替换的标记.有关更多详细信息,请参阅http://sailsjs.org/#documentation/routes.)
wiki的例子处理第一条路线,/user但是当你去的时候会发生什么 - 你/user/:id怎么从EJS视图得到模型?
我希望会有类似的<%= model.propertyName %>工作.
请记住我在服务器上生成HTML的问题.(我知道如何获取数据并呈现客户端.)
activex ×1
c# ×1
datetime ×1
ejs ×1
ember-data ×1
ember.js ×1
html5 ×1
html5-video ×1
javascript ×1
reflection ×1
sails.js ×1
transactions ×1
video ×1