给定已知的OData端点,确定OData服务版本的最佳方法是什么?此方案中的客户端可以支持任何版本(1-4),但我需要知道如何格式化请求.
例如,OData-VersionV4服务返回"4.0",但V3服务甚至没有该标头.
此外,对于具有大量实体的服务,查询服务根URL可能非常昂贵.对于例如,没有自定义一个基本动力2016在线服务对象数据的回报2.7KB,当我真正想要的是版本头.
那么获得可靠版本号的最轻量级解决方案是什么?如果解决方案是"检查这个,或者如果丢失,那么检查"是没关系的.什么是"这个"和"那个"?
我发现了一个问题(如何从元数据中找到OData版本),这似乎让我部分地在那里,但答案中存在一些问题.
首先,它专注于查找最小/最大版本号,我真的更喜欢最大值.
其次,它需要查询元数据,但这可能是一个巨大的负载./$metadata在Dynamics CRM 2016 Online上产生3.7MB响应(在我当前的连接上下载需要30秒).我想要请求一个虚拟实体,/dummy__entity然后检查标题,但这对我来说似乎有点不对,因为它会不必要地触发服务器上的错误记录,我不确定错误响应总是可能有标题我在找.
我有一个提交图,看起来像下面的那个.标记*为的提交代表许多提交.
A*
|
B---------
| |
C* D* <- old feature branch
| |
E---------
|
F*
|
G <- master
Run Code Online (Sandbox Code Playgroud)
合并提交E未正确完成,并且C*中的某些更改(不是全部)已丢失.如何重做该合并以将更改重新引入当前主服务器?
一切都已被推动(开源项目),所以改变历史不是一种选择.
我尝试从提交C*创建一个补丁并将其应用到主服务器,但由于C*的一些更改已正确合并,并且因为项目自该提交后进化,大约80%的补丁失败.
理想情况下,我们会采用C*中的所有更改,将它们应用于掌握并解决所有冲突.但由于分支已经合并,git不会检测到任何更改,也不允许再次合并.
$ git checkout 5bc5295 # C
HEAD is now at 5bc5295... cleanup
$ git checkout -b "missing-commits"
Switched to a new branch 'missing-commits'
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
$ git merge missing-commits
Already up-to-date.
Run Code Online (Sandbox Code Playgroud) 我没有得到我希望绑定到业务对象中的整数属性的TextBox的行为.
这是我做的:
(1)将DataSourceUpdateModeTextBox设置为:OnValidation.
(2)如果Validating是TextBox,请设置e.Cancel = TrueInteger.TryParse是否失败.
(3)在处理程序中添加处理程序Binding.Parse并Binding.BindingComplete在处理程序中放置断点.
运行应用程序,将"asdasd"放在TextBox和tab中.尽管设定e.Cancel = True,但事件Parse和BindingComplete事件都被提出.根据文档,设置e.Cancel = True应该抑制任何进一步的逻辑.
我搜索了MSDN,找出为什么会发生这种情况,但我找不到任何东西.有没有人知道我在哪里可以得到一些细节?
ETA:我还为Validated事件添加了一个句柄.这是事件的顺序:
数据不好:
(1)验证.(我设定e.Cancel = True)
(2)解析
(3)BindingComplete
好数据:
(1)验证
(2)解析
(3)BindingComplete
(4)经过验证
ETA2:更多信息和解决方法.
此行为的问题是,如果您有一些未在属性设置器中实现的验证.
例如,假设我的整数属性必须是奇数.我没有在属性设置器中检查这个,所以我在验证事件中进行检查.
如您所见,根据上述行为,即使我取消验证,作为合法整数的值也将写入数据源.
尽管数据源已更新,但如果在验证事件中设置了"取消",则不会触发Validated事件,因此您仍然可以阻止用户继续进行.
变通::
要停止数据源更新,您需要在Binding.Parse事件中进行验证,并抛出异常 - 这会阻止Binding成功完成.
我希望通过在每个句点和字母之间插入一个空格来分隔句子,而不是在点和括号或点和逗号之间插入空格.
考虑一下:
This is a text.With some dots.Between words.(how lovely).
Run Code Online (Sandbox Code Playgroud)
这可能在Perl或PHP中有一些解决方案,但我感兴趣的是它可以在支持基于正则表达式的搜索/替换的文本编辑器中完成吗?问题是它会匹配点和字符,替换将完全消除两者.换句话说,有没有办法在这两个字符之间匹配"无"?
我有一个用户已登录到Web应用程序(使用OpenID Connect进行身份验证)然后需要从单独的REST服务访问数据的方案.
REST服务需要确定用户是否具有访问所请求数据的权限,但如果用户确实具有权限,则它应该授予Web应用程序授权,而无需用户与UI交互.
基本上,我需要的是一个两足的OAuth解决方案,其中客户端/信赖方完全受信任,但已经过身份验证的用户不是.
进入后,我认为OAuth可以满足这些要求,但是没有一种授权类型似乎符合要求:
这是OAuth的差距吗?或者我误解了这些拨款类型?如果OAuth不能支持这种情况,是否还有其他广泛采用的开放标准,我错过了?
值得注意的是:我只拥有/控制Web应用程序,而客户(所有客户都是企业)拥有/控制身份验证服务器和REST服务.因此,需要一个共享的非专有标准,以便我们的客户知道如何配置他们的服务(IBM,Microsoft,等等),以便我知道如何传递任何身份验证令牌等.
我在http:// localhost/RestService/GetTransactionByStatus/1上有一个可用的Web服务.当我在浏览器上运行该URL时,我得到了正确的JSON格式的响应:
{
"transactionConcil" : "TRANSACTIONS OK",
"numTransactionConcil" : 0,
"transactionNoConcil" : "TRANSACTIONS NOT OK",
"numTransactionNoConcil" : 0
}
Run Code Online (Sandbox Code Playgroud)
如何管理此REST服务以使用Web服务在浏览器中显示正确的数据?数据将被动态管理,因此要显示的信息取决于ID(URL中的最后一个参数).
我已经看到了许多在.NET 中转换Object为a 的方法String,通常用于在对象类型未知时向用户显示对象的值.
这些包括:
Dim x as Object = 3
Dim y as Object = Nothing
Dim z as Object = DBNull.Value
Dim l_displayString As String
l_displayString = "" & x & "" & y & "" & z
l_displayString = If(x, "").ToString() & If(y, "").ToString() & If(z, "").ToString()
l_displayString = Convert.ToString(x) & Convert.ToString(y) & Convert.ToString(z)
Run Code Online (Sandbox Code Playgroud)
是否有Microsoft推荐的方法,或者这些方法都编译为相同的字节代码?
编辑:
让我稍微扩展一下这个问题:
这些方法有什么区别?我看不清底下发生了什么,所以很高兴知道一个人是否有任何性能优势.在某些情况下,这些调用可能会进行数千次(例如从大型表中读取),并且在几秒钟内完成调整可能会对UX造成很大影响.
我有一个用.NET编写的相当简单的控制台应用程序.有时应用程序在没有操作员的情况下以批处理模式运行,有时它是"自掏腰包"运行的.如果它以批处理模式运行,则会有一个定义的默认选项,允许程序自动运行.如果存在操作员,则还有其他选项允许用户从功能列表中进行选择.
由于我不想进入的原因,命令行参数不是首选.相反,我创建了一个10秒的窗口,操作员可以在其中选择一个功能.目前,我正在使用一个简单的while循环并从"in"流中读取输入.我在最后添加了一个Thread.Sleep调用,以防止while循环完全消耗处理器,但我想知道是否有更好的方法.
在Windows应用程序(Windows窗体或WPF)中,有一个消息泵,它能够读取消息队列,然后将控制权返回给系统.即使像Visual Studio,SAS Enterprise Guide和SQL Server Management Studio这样的重型应用程序在空闲时也几乎使用了0%的处理器.我的控制台应用程序可以获得相同的效果吗?
Thread.Sleep正在工作,但正如我所说,我想知道是否有更好的方法.
这是源代码:
class Program {
static void Main( string[] args ) {
DateTime l_startTime = DateTime.Now;
Console.CursorVisible = false;
Console.WriteLine( "Please select an option within 10 seconds..." );
Console.WriteLine( "" );
Console.WriteLine( " [1] Option A (DEFAULT)" );
Console.WriteLine( " [2] Option 2" );
Console.WriteLine( " [3] Option III" );
int l_elapsedSeconds = 0;
bool l_exit = false;
while ( !l_exit …Run Code Online (Sandbox Code Playgroud) 刚刚安装了VSCode和git bash.
我已将以下行添加到settings.json文件中:
{
"terminal.integrated.shell.windows": "D:\\Program Files\\Git\\git-bash.exe"
}
Run Code Online (Sandbox Code Playgroud)
当我按下Ctr +`打开集成的shell窗口时,它打开一个新窗口,而不是在底部的主编辑器中打开:
为什么不在通常的地方出现?
我有一个控制TableLayoutPanel网格PictureBox.我正在尝试找到一种快捷方式将它们全部更改为Label控件,而不是手动删除每个控件并在每个单元格中放置新控件.
我以为我可以进入设计器代码并使用Label查找/替换PictureBox,但现在我得到了一个
"对象与目标类型不匹配"
Visual Studio的错误列表中的错误.我现在也无法查看设计器页面.这是不允许的?如果允许,那么正确的方法是什么?
.net ×4
c# ×2
rest ×2
vb.net ×2
winforms ×2
bash ×1
d3.js ×1
data-binding ×1
git ×1
javascript ×1
json ×1
label ×1
merge ×1
message-pump ×1
oauth-2.0 ×1
odata ×1
picturebox ×1
regex ×1
replace ×1
validation ×1
version ×1