我正在尝试授权仅在其收容的右侧或底部拖出一个对象,并且不能正确地停止拖动该元素.
我的代码:
<!DOCTYPE html>
<html>
<head>
<style>
#parent { height: 500px; width: 500px; border: 1px black solid; }
#images { height: 100px; width: 100px; background-color:orange; }
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.js"></script>
</head>
<body>
<div id="parent">
<div id="images"></div>
</div>
<script>
$(document).ready(function() {
$("#images").draggable({
containment: $("#parent"),
drag: function(event, ui) {
var helper = ui.helper, pos = ui.position;
if(pos.left + parseInt(helper.outerWidth(), 10) == parseInt($("#parent").css("width"), 10)) {
$("#parent").animate({width: "+=100"});
}
if(pos.top + parseInt(helper.outerHeight(), 10) == parseInt($("#parent").css("height"), 10)) {
$("#parent").animate({height: "+=100"});
}
}
});
}); …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的 XML:
<resultset>
<datarow>
<datacol>Row 1 - Col 1</datacol>
<datacol>Row 1 - Col 2</datacol>
<datacol>Row 1 - Col 3</datacol>
...
</datarow>
...
</resultset>
...
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何使用此 XML 实现 IDataReader 接口?我迷路了...
我已经开发了这个:
public sealed class SybaseDataReader : IDataReader
{
private DataSet _dataSet = new DataSet();
#region IDataReader methods implementation
// ...
}
Run Code Online (Sandbox Code Playgroud)
我在好路吗?
感谢您的建设性和解释清楚的帖子。
我目前正在开发一个独立于任何应用程序的微小技术框架.业务代码只是引用此框架.
根据这篇文章:http://msdn.microsoft.com/en-us/library/5z57dxz2.aspx(例2),我们需要为自定义事件提供委托.
问题是,任何人都可以调用我的处理程序(然后引发事件),即使在我的业务代码中,这对我来说也不符合逻辑,那么使用仅仅是"内部"的委托来提升自定义事件的最佳方法是什么而不是"公开"?
感谢帮助.
我已经开发了一个通用的PropertyEqualityComparer工作正常,但我不确定我是否以正确的方式完成它,所以如果有些人可以改进代码或评论家,他是受欢迎的.
注意:如果是Reference类型,属性应该实现IEquatable.
public sealed class PropertyEqualityComparer<T> : IEqualityComparer<T>
{
private readonly Type _iequatable = Type.GetType("System.IEquatable`1", false, true);
private readonly PropertyInfo _property;
public PropertyEqualityComparer(string property)
{
PropertyInfo propInfos = typeof(T).GetProperty(property);
if (propInfos == null)
{
throw new ArgumentNullException();
}
// Ensure Property is Equatable (override of HashCode)
if (propInfos.PropertyType.IsValueType
|| (!propInfos.PropertyType.IsValueType
&& propInfos.PropertyType.GetInterfaces().Any(type => type.Name == _iequatable.Name)))
{
_property = propInfos;
}
else
{
throw new ArgumentException();
}
}
public bool Equals(T x, T y)
{
var xValue = _property.GetValue(x, null); …Run Code Online (Sandbox Code Playgroud) 我正试图在我的C#应用程序中挂钩创建一个窗口.
static IntPtr hhook = IntPtr.Zero;
static NativeMethods.HookProc hhookProc;
static void Main(string[] args)
{
// Dummy.exe is a form with a button that opens a MessageBox when clicking on it.
Process dummy = Process.Start(@"Dummy.exe");
try
{
hhookProc = new NativeMethods.HookProc(Hook);
IntPtr hwndMod = NativeMethods.GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName);
hhook = NativeMethods.SetWindowsHookEx(HookType.WH_CBT, hhookProc, hwndMod, (uint)AppDomain.GetCurrentThreadId());
Console.WriteLine("hhook valid? {0}", hhook != IntPtr.Zero);
while (!dummy.HasExited)
dummy.WaitForExit(500);
}
finally
{
if(hhook != IntPtr.Zero)
NativeMethods.UnhookWindowsHookEx(hhook);
}
}
static int Hook(int nCode, IntPtr wParam, IntPtr lParam)
{
Console.WriteLine("Hook()");
return NativeMethods.CallNextHookEx(hhook, …Run Code Online (Sandbox Code Playgroud) 这是我从网站上获得的Xml:
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="[url]">
<totalResults>1</totalResults>
<movie code="134539" />
<movie code="134540" />
</feed>
Run Code Online (Sandbox Code Playgroud)
我的C#课程:
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
[Serializable]
[XmlRoot("feed", Namespace = "[url]")]
public class FeedSearch
{
[XmlElement("totalResults")]
public int TotalResults
{ get; set; }
[XmlArray("feed")]
[XmlArrayItem("movie")]
public List<MovieSearch> Movies
{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
using System;
using System.Xml.Serialization;
[Serializable]
[XmlRoot("movie", Namespace = "[url]")]
public class MovieSearch
{
[XmlAttribute("code")]
public int Code
{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
TotalResults总是被反序列化,但我的电影列表总是空的,为什么?
我对检索表的最大值并在另一个查询中使用它的方式有很大疑问.
考虑一下:
CREATE TABLE people
(
peopleID int NOT NULL,
cityID int NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
以下请求为我提供了每个城市的人数
SELECT peopleID, COUNT(*)
FROM people
GROUP BY cityID
Run Code Online (Sandbox Code Playgroud)
假设我想要最大城市的人员列表,我会写这样的请求:
SELECT people.peopleID, people.cityID
FROM people,
(
SELECT cityID, COUNT(*) AS "people_count"
FROM people
GROUP BY cityID
) g
WHERE people.cityID = g.cityID
HAVING people_count = MIN(people_count)
Run Code Online (Sandbox Code Playgroud)
但是不起作用,达到这个要求的最佳方法是什么?
谢谢 :)
我有同一段代码,我想从两个不同的地方执行。
代码 :
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "...");
var post = client.PostAsync("https://mycompany.com/...", new StringContent(json, Encoding.UTF8, "application/json")).GetAwaiter().GetResult();
var str = post.Content.ReadAsStringAsync().GetAwaiter().GetResult();
Run Code Online (Sandbox Code Playgroud)
当将此代码放入控制台时,它工作正常并且我得到了预期的结果(Json in str)。
但是,当将其放入 Outlook VSTO 项目(在功能区部分)中时。它无法系统地告诉我连接已经关闭:
The underlying connection was closed: The connection was closed unexpectedly
在 VSTO 中,我尝试过:
client.CancelPendingRequests();没有成功另一方面,当请求另一个网站内容时,它可以工作(即:我将http://mycompany.com更改为https://google.com)。
任何想法?