本文整理汇总了C#中Control.OpenFile方法的典型用法代码示例。如果您正苦于以下问题:C# Control.OpenFile方法的具体用法?C# Control.OpenFile怎么用?C# Control.OpenFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Control
的用法示例。
在下文中一共展示了Control.OpenFile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateMailMessage
/// <devdoc>
/// Creates a MailMessage using the body parameter.
/// </devdoc>
public MailMessage CreateMailMessage(string recipients, IDictionary replacements, string body, Control owner) {
if (owner == null) {
throw new ArgumentNullException("owner");
}
string from = From;
if (String.IsNullOrEmpty(from)) {
System.Net.Configuration.SmtpSection smtpSection = RuntimeConfig.GetConfig().Smtp;
if (smtpSection == null || smtpSection.Network == null || String.IsNullOrEmpty(smtpSection.From)) {
throw new HttpException(SR.GetString(SR.MailDefinition_NoFromAddressSpecified));
}
else {
from = smtpSection.From;
}
}
MailMessage message = null;
try {
message = new MailMessage(from, recipients);
if (!String.IsNullOrEmpty(CC)) {
message.CC.Add(CC);
}
if (!String.IsNullOrEmpty(Subject)) {
message.Subject = Subject;
}
message.Priority = Priority;
if (replacements != null && !String.IsNullOrEmpty(body)) {
foreach (object key in replacements.Keys) {
string fromString = key as string;
string toString = replacements[key] as string;
if ((fromString == null) || (toString == null)) {
throw new ArgumentException(SR.GetString(SR.MailDefinition_InvalidReplacements));
}
// DevDiv 151177
// According to http://msdn2.microsoft.com/en-us/library/ewy2t5e0.aspx, some special
// constructs (starting with "$") are recognized in the replacement patterns. References of
// these constructs will be replaced with predefined strings in the final output. To use the
// character "$" as is in the replacement patterns, we need to replace all references of single "$"
// with "$$", because "$$" in replacement patterns are replaced with a single "$" in the
// final output.
toString = toString.Replace("$", "$$");
body = Regex.Replace(body, fromString, toString, RegexOptions.IgnoreCase);
}
}
// If there are any embedded objects, we need to construct an alternate view with text/html
// And add all of the embedded objects as linked resouces
if (EmbeddedObjects.Count > 0) {
string viewContentType = (IsBodyHtml ? MediaTypeNames.Text.Html : MediaTypeNames.Text.Plain);
AlternateView view = AlternateView.CreateAlternateViewFromString(body, null, viewContentType);
foreach (EmbeddedMailObject part in EmbeddedObjects) {
string path = part.Path;
if (String.IsNullOrEmpty(path)) {
throw ExceptionUtil.PropertyNullOrEmpty("EmbeddedMailObject.Path");
}
if (!UrlPath.IsAbsolutePhysicalPath(path)) {
VirtualPath virtualPath = VirtualPath.Combine(owner.TemplateControlVirtualDirectory,
VirtualPath.Create(path));
path = virtualPath.AppRelativeVirtualPathString;
}
// The FileStream will be closed by MailMessage.Dispose()
LinkedResource lr = null;
try {
Stream stream = null;
try {
stream = owner.OpenFile(path);
lr = new LinkedResource(stream);
}
catch {
if (stream != null) {
((IDisposable)stream).Dispose();
}
throw;
}
lr.ContentId = part.Name;
lr.ContentType.Name = UrlPath.GetFileName(path);
view.LinkedResources.Add(lr);
}
catch {
if (lr != null) {
lr.Dispose();
}
throw;
}
}
message.AlternateViews.Add(view);
}
else if (!String.IsNullOrEmpty(body)) {
message.Body = body;
}
message.IsBodyHtml = IsBodyHtml;
return message;
}
//.........这里部分代码省略.........