问题列表 - 第9132页

使用SmtpClient发送邮件的最佳方式?

在发送大量电子邮件时,我正在寻找良好的性能.

我听说正确的方法是打开一个连接发送~20封电子邮件并关闭连接.并一遍又一遍地这样做.它是否正确?

SmtpClient是如何工作的,是否为自己的生命周期打开了连接?(不是IDisposable,所以看起来不像那样)或者是否为每个发送的电子邮件打开连接?或者它是否一直打开连接?或者它是否有一些魔力可以在适当时打开和关闭连接?

我想知道所以我知道如何启动SmtpClient.作为单身人士或仅作为一大块信息......

.net email performance smtp smtpclient

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

如何强制Internet Explorer使用元标记中给出的编码?

我正在尝试准备一个混合英语和阿拉伯语内容的演示html页面.基本上它包含一个小表,左边是英文短语,右边是阿拉伯语翻译.

因为我不懂阿拉伯语,所以我从Unicode参考中获取了阿拉伯字母的前三个字符.

第一次尝试,使用字符实体(ابت):它工作(显示:ابت).

我试图直接在文档中输入阿拉伯字符.为了实现这一点,我将文档保存为UTF-8并添加了内容类型的元标记.

在Internet Explorer(7)中显示此文档显示垃圾:ابت

手动切换IE以使用UTF-8(菜单"视图 - >视图 - > Unicode")使IE显示字符correclty.但是一旦文档重新加载,垃圾就会再次出现.

<html>
  <head>
  <meta content="content-type" content="text/html; charset=utf-8">
  </head>
  <body>
    <table width="95%" border="1">
      <colgroup><col width="50%" /><col width="50%" /></colgroup>
      <tbody>
        <tr>
          <th>English</th><th>Arabic</th>
        </tr>
        <tr>
          <td>Test phrase</td>
          <td dir="rtl">? ? ?</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

使用Firefox测试显示正确的阿拉伯字母.(但是对"rtl"方向的解释是不同的:IE显示文本右对齐,Firefox左对齐.)

任何提示如何说服IE使用文档中给出的编码?

这是本地存储的html文件的效果吗?编辑此StackOverflow条目时,我会观察

  • 阿拉伯字符按预期呈现,
  • 菜单中的编码自动切换为"Unicode(UTF-8)",
  • 并且html的源代码不包含内容类型的元标记.

unicode internet-explorer utf-8 character-encoding internet-explorer-7

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

虚拟呼叫使用纯虚拟成员的地址.这合法吗?

我读回来(可能是在clc ++.moderated),虚拟函数调用可以被模板化.我尝试了以下几行.

#include <iostream>

template<class T, class FUN> 
void callVirtual(T& t, FUN f){ 
   (*t.*f)(); 
} 


struct Base{ 
   virtual ~Base(){} 
   virtual void sayHi()=0; 
}; 


struct Derived : public Base{ 
   void sayHi(){ 
      std::cout << "Hi!" << std::endl; 
   } 
}; 


void Test(){ 
   Base* ptr = new Derived; 
   callVirtual(ptr,&Base::sayHi); 
} 

int main()
{
   Test();
   return 0;
}

Output:
Hi!
Run Code Online (Sandbox Code Playgroud)

虽然在编译时给定纯虚基本成员方法的地址,但是在运行时调用正确的方法的模板化方法.在标准C++中获取纯虚拟成员的地址是否合法?

提前致谢

编辑1:我删除了问题的第二部分'它是如何工作的?'.看起来这是引起注意的东西.

编辑2:我搜索了clc ++.版主并发现了这个链接(http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/5ddde8cf1ae59a0d).似乎是因为标准不限制它,所以它是有效的.

编辑3:在阅读了codeproject文章后(感谢ovanes),我认为编译器会做一些魔术.由于虚函数是通过vtable(特定于编译器)实现的,因此获取虚函数的地址总是会给出vtable中的偏移量.根据所使用的'this'指针,调用相应的函数(其地址位于偏移量).我不知道如何证明这一点,因为标准没有说明任何事情!

c++ inheritance templates

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

Eclipse JFace的向导(再次......)

现在,我可以根据第一页选择设置第二个向导页面的内容,我正在寻找一种方法,当用户单击第一页上的下一个按钮时,将焦点放在第二页的内容上.

默认情况下,当用户单击下一个按钮时,焦点将放在按钮组合上(下一个,后退或完成按钮,具体取决于向导配置)

我发现将焦点放在页面内容上的唯一方法是:

public class FilterWizardDialog extends WizardDialog {

    public FilterWizardDialog(Shell parentShell, IWizard newWizard) {
        super(parentShell, newWizard);
    }

    @Override
    protected void nextPressed() {
        super.nextPressed();
        getContents().setFocus();
    }
}
Run Code Online (Sandbox Code Playgroud)

对我来说,为了实现这种行为,必须覆盖WizardDialog类有点"无聊和沉重".更重要的是,WizardDialog javadoc说:

客户端可以是子类WizardDialog,尽管这很少需要.

您对此解决方案有何看法?有没有更简单,更清洁的解决方案来完成这项工作?

java eclipse jface

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

我为什么要签署我的JAR文件?

我为什么要签署我的JAR文件?

我知道我需要签署我的客户端JAR文件(包含Applet),以便可以完成文件系统访问等特殊操作,以便窗口底部的烦人位不会显示,但为什么还要显示?我是否需要签署包含Servlet等的服务器端JAR文件?

关于何时何何不签署JAR的一些基本规则将不胜感激 - 谢谢!

java jar signed-applet

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

我想分析WCF消息

在标题中我想看到本地测试中交换的消息的代码.

我想这样做是为了确保它们按照我的设定真正加密.

有人能帮我吗?

谢谢,

阿尔贝托

.net wcf wcf-security

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

对XElement进行排序

我有一个XElement,其映射如下:

<book>
    <author>sadfasdf</author>
    <title>asdfasdf</title>
    <year>1999</year>
</book>
<book>
    <author>asdfasdf</author>
    <title>asdfasdf</title>
    <year>1888</year>
</book>
<book>
    <author>asdfsdf</author>
    <title>asdfasdf</title>
    <year>1777</year>
</book>
Run Code Online (Sandbox Code Playgroud)

如何按作者或标题或年份对书籍进行排序?谢谢

.net linq

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

用于处理protobuf的Eclipse插件

协议缓冲区(protobuf)是一种以高效且可扩展的格式编码结构化数据的方法.

有Netbeans 的插件,但我找不到Eclipse 的插件.它存在吗?如果是,请分享链接.

谢谢.

java eclipse eclipse-plugin protocol-buffers

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

将C++代码从VC6迁移到VS2008后出现错误C2678 - 找不到哪个运算符采用类型为'type'的左侧操作数

这段代码在VC6中编译文件,但在VS 2008中它会出错.谁能告诉我为什么?我想这是因为你不能再将指针与NULL(这是一个0的typedef)进行比较.如果是这种情况,我该如何在VC9中进行这种比较?

for ( std::vector<aCattrBase*>::iterator iT = attrLst.begin(); iT < attrLst.end(); iT++)
        { 
            if ( (iT != NULL) && (*iT != NULL) ) //Error: C2678
            {
//code
}
}
Run Code Online (Sandbox Code Playgroud)

错误C2678:二进制'!=':找不到运算符,它接受类型为'std :: _ Vector_iterator <_Ty,_Alloc>'的左手操作数(或者没有可接受的转换)

c++ visual-c++-6 visual-studio-2008 visual-studio

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

太多的间接层,这太多了吗?

我只是想知道这是否会涉及多层间接?

替代文字http://img244.imageshack.us/img244/7371/classdiagram1.jpg

我尝试做一些解释.我的想法是,我在COM对象的顶部构建一个API,它只暴露Do和Eval方法.

以前我刚刚将一个IComObject传递给Table类并直接对其进行操作,但这意味着当我尝试测试Table类时,我已经模拟了ICo​​mObject并担心命令被发送到我的表类中的COM对象.

基本思想是我有命令运行器负责在COM对象中调用正确的命令,而Table(和其他)对象只是与命令运行器对话,而不必担心正在执行的命令.然后在我的测试中我可以这样做:

Mock<TableCommandRunner> mockrunner = new Mock<TableCommandRunner>();
mockrunner.Setup(run => run.getName("DummyTable")).Returns("FakeName");

Table table = new Table("DummyTable");
//Table.Name just calls commandrunner.getName
Assert.Equal(table.Name,"FakeName");
Run Code Online (Sandbox Code Playgroud)

是否有太多的间接层或者这样可以吗?

注意:我会有更多的类,然后只有Table,Map,Window,Object等等都可以与命令运行者交谈.

.net abstraction

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