我正在使用SmtpClient从我的C#应用程序发送邮件.工作得很好,但我必须决定是否要将邮件作为纯文本或HTML发送.我想知道,有没有办法送两个?我认为这叫做多部分.
我用Google搜索了一下,但是大多数示例基本上没有使用SmtpClient,而是整个SMTP-Body本身,这有点"可怕",所以我想知道是否在.net Framework 3.0中构建了一些东西?
如果没有,是否有任何使用良好/强大的第三方库用于发送电子邮件?
我有一个简单的类,基本上只包含一些值.我重写了ToString()方法以返回一个很好的字符串表示.
现在,我想创建一个ToXml()方法,它将返回如下内容:
<Song>
<Artist>Bla</Artist>
<Title>Foo</Title>
</Song>
Run Code Online (Sandbox Code Playgroud)
当然,我可以只使用一个StringBuilder在这里,但我想返回XmlNode或XmlElement,与其一起使用XmlDocument.AppendChild.
我似乎并没有能够创造出一个XmlElement比调用其他的XmlDocument.CreateElement,所以我不知道我刚才忽略任何东西,或者如果我真的要么必须在任何一个传球XmlDocument或者ref XmlElement一起工作,或者有函数返回一个包含字符串我想要的XML?
我有一个类,其构造函数被定义为内部,这意味着我无法实例化它.虽然这可能有意义,但我仍然希望这样做一次用于调试和研究目的.
用反射可以做到吗?我知道我可以访问私人/内部成员,但我可以调用内部构造函数吗?
或者,由于构造函数没有什么重要的,我可以使用反射来说"看,只需给我一个类的实例而不调用构造函数,我会手动完成它的工作"?
性能和"稳定性"在这里不是问题,因为它不是生产代码.
编辑:正如澄清:遗憾的是,我不控制其他程序集并且没有它的源代码,我只是试图理解它是如何工作的,因为它的文档旁边是不存在的,但我应该与它.
我只是想知道是否有可能在没有在服务器上安装Outlook并使用COM Interop(我想在服务器上不惜一切代价避免)的情况下向人们发送会议请求.
我们在Windows 2003域中安装了Exchange 2003,并且所有用户都是域用户.我想我可以发送'回合iCal/vCal或其他东西,但我想知道是否有一种适当的标准方式通过Exchange发送会议请求而没有Outlook?
如果重要的话,这是C#/ .net.
因此,使用Firesheep,公共Wi-Fi中的每个人现在都有一键式会话劫持工具.
它的工作方式 - 据我所知 - 它只是捕获所有流量并抓取会话cookie(因此它不会窃取密码).
根据我的理解,这也意味着HTTPS安全登录不能单独解决这个问题,因为进一步的HTTP流量将再次以明文形式包含会话Cookie.
由于NAT将会话绑定到特定IP地址是无用的,并且将其绑定到用户代理很容易欺骗.
那么100%HTTPS始终是阻止此类会话劫持的唯一方法吗?人们不能简单地嗅探整个HTTPS流量,包括握手,还是这个东西安全?(我正在考虑重播攻击,但对该领域一无所知.)
当然,不使用公共/开放式Wi-Fi网络是更好的选择,但我仍然对网站开发人员可以做些什么来保护他/她的用户感兴趣.
回到过去,帮助不是微不足道的,但可能:生成一些带有特殊标签的时髦.rtf文件,通过编译器运行它,你得到一个真正运行良好的WinHelp文件(.hlp).
然后,微软决定WinHelp不再嘻嘻哈哈,转而使用CHM,直到他们真正从Vista中剔除了WinHelp.
现在,CHM可能还不错,但是每个试图在网络上打开.chm文件的人都会知道由于安全限制而导致的"导航到网页已被取消"屏幕.
虽然有一些方法可以让CHM在网络上运行,但这不是一个好的选择,因为当用户按下帮助按钮时,他需要帮助而不必进行一些时髦的设置.
底线:我发现CHM绝对无法使用.但是由于WinHelp不再是一个选项,我想知道替代方案是什么,特别是当它与我的应用程序集成时(即对于WinHelp和CHM,有些功能可以让你直接跳转到一个主题)?
PDF的缺点是需要使用Adobe Reader(或者是人们使用的轻量级之一).我可以忍受这种看法,因为这是现在的一种标准,但你能否可靠地告诉它跳转到给定的页面/锚点?
HTML文件似乎是最好的选择,然后你只需要处理不同的浏览器(CSS和东西).
编辑:我想创建自己的帮助文件.由于我是"No Setup,Just Extract and Run"理念的粉丝,我过去曾经多次遇到过这个问题,因为我的很多用户都会将它从网络上运行,这导致了这个问题.
因此,我正在寻找一种更强大,面向未来的方式来为我的用户提供帮助,而无需为我制作的每个应用程序编写不同的帮助系统.
CHM是一种非常好的格式,但是Security Stuff使它无法使用,因为Help系统应该为用户提供帮助,而不是产生更多的问题.
我有一个WinForms应用程序,我想将其翻译成多种语言.但是,我没有任何本地化WinForms应用程序的经验,我发现有关此主题的非常矛盾的信息.
基本上,我想要的是:
我见过的大多数解决方案要么每个表单都有一个.resx文件和/或外部附属程序集.
我必须自己动手吗?或者框架中有什么东西吗?
.net Framework 3.5 SP1如果重要的话.
编辑:在大多数情况下,Visual Studio已经提供了我想要的支持,但有两个问题.当我将Form.Localizable设置为true时,我有这个很好的设计器支持,但是这会为每个表单生成一个resx.在InitializeComponent中手动覆盖它的想法失败了,因为它是经常被覆盖的设计者编写的代码.从理论上讲,我只想a)覆盖ComponentResourceManager的创建,将其指向我的全局resx,b)将对ApplyResources的调用更改为将CultureInfo作为第三个参数的重载.
好像我必须在我的构造函数中添加一个函数调用,该函数调用在InitializeComponent()之后调用并覆盖它的行为.这似乎非常低效,但Visual Studio在警告触摸InitializeComponent时是正确的.目前,我确实正在推出自己的WinForms本地化框架......
我(现在仍在)寻找在.net(c#)应用程序中使用的嵌入式数据库.警告:应用程序(或至少数据库)存储在网络驱动器上,但一次仅由1个用户使用.
现在,我的第一个想法是SQL Server Compact版.这真的很好地融合了,但它无法在网络上运行.
Firebird似乎有同样的问题,但.net集成似乎并不是真正的一流,而且很大程度上没有文档记录.
Blackfish SQL看起来很有趣,但没有.net版本的试用版.定价也行.
对.net 运行良好并且无需实际安装服务器软件即可在网络上运行的任何其他建议?
有没有办法告诉Visual Studio 2010为.tt文件启用语法高亮?我有一个指令来设置扩展名:
<#@ output extension=".ascx" #>
Run Code Online (Sandbox Code Playgroud)
所以我希望Visual Studio将文件视为ascx文件,以达到语法高亮显示的目的.
.net ×6
c# ×5
chm ×1
cryptography ×1
database ×1
debugging ×1
encryption ×1
https ×1
localization ×1
outlook ×1
reflection ×1
security ×1
session ×1
t4 ×1
windbg ×1
windows ×1
winforms ×1
winhelp ×1
xml ×1