看看这个jsFiddle
当使用jQuery与SVG(Raphael 2.0)结合时,mouseenter
/ mouseleave
似乎没有正确触发.我知道开箱即用SVG jQuery与SVG不是100%兼容,但是,据我所知,它似乎只影响IE9.
奇怪的是,如果你快速移动鼠标打开/关闭svg元素(确保你在HTML窗格中这么做)并返回它,事件会触发(但不是每次).只是为了确保这不是一个普遍的问题,on
我把click
每次都很好的事件联系起来.
只是想知道是否有人知道这是一个错误,甚至是一个已知的问题?
这可能仅仅是一个偏好问题,但是,我有兴趣知道何时使用这两种方法的最佳实践方式.
例如
var person = new Person();
person.Run();
Run Code Online (Sandbox Code Playgroud)
而不是
var person = new Person();
Excercise.Run(person);
Run Code Online (Sandbox Code Playgroud)
上面的例子可能不是最好的,但我的一般观点是你何时决定赋予对象责任而不是另一个类?
我已经阅读了很多语句,比如" 你不应该用自定义设置阻塞你的app.config文件 ".但是,我的印象是,这正是文件的目的?
它确实是一个偏好的东西吗?或者通过使用与app.config文件相关的自定义XML文件,是否有任何真正的好处(除了设置分离)?如果您需要明确地分离设置,那么最好使用自定义ConfigurationSection
而不是选择自定义XML文件吗?
我想在这里有其他人的想法.
我有一个控制台应用程序,可以向不同的收件人发送自定义的电子邮件(带附件),我想同时发送它们.我需要创建单独的SmtpClients来实现这一点,所以我使用QueueUserWorkItem来创建电子邮件并将它们发送到不同的线程中.
片段
var events = new Dictionary<Guid, AutoResetEvent>();
foreach (...)
{
ThreadPool.QueueUserWorkItem(delegate
{
var id = Guid.NewGuid();
events.Add(id, new AutoResetEvent(false));
var alert = // create custom class which internally creates SmtpClient & Mail Message
alert.Send();
events[id].Set();
});
}
// wait for all emails to signal
WaitHandle.WaitAll(events.Values.ToArray());
Run Code Online (Sandbox Code Playgroud)
我已经注意到(间歇性地)有时并非所有电子邮件都使用上述代码到达特定邮箱.我原以为使用Send
over SendAsync
意味着电子邮件肯定是从应用程序发送的.但是,在行之后添加以下代码WaitHandle.WaitAll
行:
System.Threading.Thread.Sleep(5000);
Run Code Online (Sandbox Code Playgroud)
似乎工作.我的想法是,无论出于何种原因,仍然没有发送一些电子邮件(即使在Send
方法运行之后).给予额外的5秒似乎给应用程序足够的时间来完成.
这可能是我等待发送电子邮件的方式的问题吗?或者这是实际Send方法的问题?一旦我们通过这条线,电子邮件肯定是从应用程序发送的吗?
任何有关此问题的想法都会很棒,似乎无法完全理解实际原因.
更新
这里要求的是SMTP代码:
SmtpClient client = new SmtpClient("Host");
FieldInfo transport = client.GetType().GetField("transport", BindingFlags.NonPublic | BindingFlags.Instance);
FieldInfo authModules = transport.GetValue(client).GetType()
.GetField("authenticationModules", BindingFlags.NonPublic | …
Run Code Online (Sandbox Code Playgroud) 我想在我的web.config中有一个自定义部分,如下所示:
<MyMainSection attributeForMainSection = "value foo">
<add name = "foo"
type = "The.System.Type.Of.Foo, Assembly, Qualified Name Type Name" />
<add name = "bar"
type = "The.System.Type.Of.Bar, Assembly, Qualified Name Type Name" />
</MyMainSection>
Run Code Online (Sandbox Code Playgroud)
我已经定义了以下代码:
using System.Configuration;
class MyMainSection : ConfigurationSection
{
/*I've provided custom implemenation.
Not including it here for the sake of brevity. */
[ConfigurationProperty("attributeForMainSection")]
public string AttributeForMyMainSection { get; set; }
[ConfigurationProperty("add")]
public AddElement TheAddElement { get; set; }
private class AddElement: ConfigurationElement
{
/* Implementation done */ …
Run Code Online (Sandbox Code Playgroud) 编译器允许我执行以下操作:
procedure MyProc(const ADynData: array of string);
Run Code Online (Sandbox Code Playgroud)
要么
procedure MyProc(const ADynData: TStringDynArray);
Run Code Online (Sandbox Code Playgroud)
并传递任意数据,如下所示:
MyProc(['Data1', 'Data2']);
Run Code Online (Sandbox Code Playgroud)
但是,不允许
function MyFunc: TStringDynArray;
....
function MyFunc: TStringDynArray;
begin
Result := ['Data1', 'Data2'];
end;
Run Code Online (Sandbox Code Playgroud)
要么
function MyFunc: TStringDynArray;
const
CDynData: array[0..1] of string = ('Data1', 'Data2');
begin
Result := CDynData;
end;
Run Code Online (Sandbox Code Playgroud)
为什么是这样?这在技术上是不是一回事?
对于这些特定场景,返回任意数组字符串的建议(和最有效)方法是什么?
谁为这个特定组件提供了更好的解决方案?
说我有这样的查询:
SELECT X FROM Table WHERE Y = 'Z'
Run Code Online (Sandbox Code Playgroud)
如何使用X
上述查询中的每一个作为参数执行存储过程?
UPDATE
我已将SP更改为表值函数.因此,对于函数的每次调用,它将返回一个表.我需要做的是将所有这些结果存储在临时表中,让我的SP返回此表.
解
最后设法在@cyberkiwi的帮助下使用它.这是我的最终解决方案:
DECLARE @Fields TABLE (
Field int)
INSERT INTO @Fields (X) SELECT * FROM tvf_GetFields(@SomeIdentifier)
SELECT * FROM @Fields
CROSS APPLY dbo.tvf_DoSomethingWithEachField([@Fields].Field)
Run Code Online (Sandbox Code Playgroud) 请考虑以下枚举:
[Flags]
public enum MyEnum
{
Option1 = 0,
Option2 = 1,
Option3 = 2,
Option4 = 4
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以将字符串等效(不是值)作为CSV字符串?通常我可以使用Enum.GetName函数将类型转换为字符串表示形式,但是,如果使用组合,则返回null.
所以基本上我想转换:
var options = MyEnum.Option1 | MyEnum.Option3;
Run Code Online (Sandbox Code Playgroud)
成
"Option1, Option3"
Run Code Online (Sandbox Code Playgroud)
然后我希望能够将"Option1,Option3"转换回来MyEnum.Option1 | MyEnum.Option2
.
建议?
c# ×4
app-config ×2
delphi ×2
.net ×1
arrays ×1
delphi-xe3 ×1
dll ×1
enums ×1
jquery ×1
mouseevent ×1
office-2007 ×1
oop ×1
raphael ×1
ribbon ×1
smtp ×1
sql ×1
svg ×1
web-config ×1