小编Spe*_*r R的帖子

没有Rails的ActionMailer 3

我正在编写一个小型Ruby程序,它将从数据库中提取记录并每天发送一封HTML电子邮件.我正在尝试使用ActionMailer 3.0.3,但我遇到了问题.到目前为止,我在Rails之外使用ActionMailer所做的所有搜索都适用于版本3之前的版本.有人能指出我在哪里找到如何执行此操作的资源的正确方向吗?这是我到目前为止在我的邮件文件中的位置:

# lib/bug_mailer.rb
require 'action_mailer'

ActionMailer::Base.delivery_method = :file

class BugMailer < ActionMailer::Base
  def daily_email
    mail(
            :to      => "example@mail.com",
            :from    => "example@mail.com",
            :subject => "testing mail"
    )
  end
end

BugMailer.daily_email.deliver
Run Code Online (Sandbox Code Playgroud)

我肯定会被困在哪里发表意见.我告诉ActionMailer模板所在的每一次尝试都失败了.

我想我也应该问一下是否有不同的方法可以完成这个程序.基本上,我现在正在从头开始做所有事情.显然是什么让Rails很棒是它的惯例,所以试图自己使用部分Rails浪费时间?有没有办法在不创建完整的Rails应用程序的情况下获得类似Rails的环境?

ruby actionmailer ruby-on-rails-3

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

确定Dictionary是否包含所有一组键

我试图找出确定Dictionary<string, string>对象是否包含所有一组string对象作为键的最佳方法.

我可能没有任何意义,所以这里有一些使用一组确定字符串的示例代码:

public static bool ContainsKeys(this Dictionary<string, string> dictionary)
{
  return dictionary.ContainsKey("fname") && dictionary.ContainsKey("lname") && dictionary.ContainsKey("address1") &&
         dictionary.ContainsKey("city") && dictionary.ContainsKey("state") && dictionary.ContainsKey("zip");
}
Run Code Online (Sandbox Code Playgroud)

这里的想法是接受任意一组字符串,keys并检查Dictionary<string, string>对象的键是否包含所有字符串keys.

我试图沿着LINQ路走下去:

public static bool ContainsKeys(this Dictionary<string, string> dictionary, string[] keys)
{
  var query = from entry in dictionary
              where keys.Contains(entry.Key)
              select entry;

  return query.Any();
}
Run Code Online (Sandbox Code Playgroud)

我不知道我是否在正确的道路上 - 我认为如果我想知道是否dictionary包含任何这些字符串作为键,这可能会有效.

.net c# linq

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

ASPX中的动态页面渲染

我是C#和.NET的新手,我发现自己遇到了一个问题而且我不确定我需要朝哪个方向前进.

我公司与第三方订阅履行系统合作,实现许多功能,包括计费和续订.该系统能够在触发某些事件时自动发送电子邮件.例如,每个订阅都会通过,我们称之为续订系列.这个系列包括在订阅的整个生命周期中传播的几项努力.

当订阅符合本系列的某些努力时,我们可以生成一个事件,该事件将导致系统向具有XML有效负载的给定URI发送HTTP POST请求.端点(.aspx页面)接收请求,处理它,并返回响应,在本例中为HTML代码.该HTML随后由履行系统通过电子邮件发送出去.

我有一个基本的Web应用程序,其中一些.aspx页面已经启动并运行.每个页面后面都有一个相应的.cs代码.

这是我的问题真正开始的地方.在我们的履行系统中,我们只能为每个事件和产品组合定义一个端点.因此,无论订阅当时符合哪种努力,事件本身都是相同的.但是,不同之处在于HTTP POST请求的XML.我可以通过XML来判断生成请求的工作量.重要的原因是因为相应电子邮件的HTML对于每项工作都是不同的.要用一种略微不同的方式来表达它,应该呈现的HTML从上到下是不同的,因为努力1比努力2.努力2不同于努力3,依此类推.

所以,我想弄清楚的是如何"引导流量".由于所有这些请求都将来到单个端点,因此我需要为相应的工作动态返回正确的HTML.

在同一个应用程序的另一个.aspx页面中,有一些内容需要根据请求的内容动态生成.在这种情况下,我使用了两个PlaceHolder控件,每个可能的文本集一个.然后,在后面的代码中,Visible根据需要将其属性设置为true或false.

在这种情况下,我很早就解除了这样做的想法,因为有五到六个HTML模板,并且将所有这些模板填充到一个页面中会很麻烦且难以维护.

这就是我不知道接下来该做什么的地方.我觉得用户控制或自定义控件将成为可行的方法?但是,简单的旧重定向是一个更好的选择吗?或者以上都没有?

c# asp.net c#-4.0

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

在工作流设计器中从VB切换到C#

我正在Visual Studio 11 Beta中创建一个活动库(尽管我已经在VS2010中重复了我的所有步骤,结果相同),目标是.NET 4.0框架.

当我开始通过工作流设计器输入参数时,我注意到默认值框中的" 输入VB表达式 "消息.我不确定如何将语言上下文从VB更改为C#.

要创建项目,我按照以下步骤操作:

  1. 转到文件 > 新建,然后选择项目...

  2. 在New Project对话框窗口的Installed > Templates部分中,选择Visual C# > Workflow > Activity Library

  3. 像往常一样命名项目,然后单击" 确定"

这基本上就是它.我注意到默认Activity1.xaml文件在默认值字段中期望VB.我删除了它,然后按照这些步骤创建一个新的Activity:

  1. 右键单击该项目,然后选择Add > New Item ...

  2. 在"添加新项"对话框窗口中,导航到" 已安装" >" Visual C#项目" >" 工作流" >" 活动"

  3. 命名活动,然后单击"确定"

结果相同,默认值字段需要VB表达式.

当我查看XAML代码时,我可以清楚地看到Microsoft.VisualBasic.Activities列出的命名空间和一个VisualBasic.Settings元素,但我不知道该如何改变它; 每次我尝试,我最终都搞砸了.这是生成的XAML代码:

<Activity mc:Ignorable="sads sap" x:Class="THINKImport.CustomerAddOrderAdd"
 xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities"
 xmlns:local="clr-namespace:THINKImport.THINKWebReference"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities"
 xmlns:s="clr-namespace:System;assembly=System.Core"
 xmlns:s1="clr-namespace:System;assembly=System"
 xmlns:s2="clr-namespace:System;assembly=System.ServiceModel"
 xmlns:s3="clr-namespace:System;assembly=mscorlib"
 xmlns:sads="http://schemas.microsoft.com/netfx/2010/xaml/activities/debugger"
 xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"
 xmlns:t="clr-namespace:THINKImport"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<x:Members>
    <x:Property Name="user_login_data" Type="InArgument(local:user_login_data)" />
    <!--Removed the other …
Run Code Online (Sandbox Code Playgroud)

xaml workflow-activity visual-studio workflow-foundation-4

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

在C#中动态转换Page.LoadControl

我是第一次写一些用户控件,我想知道是否有一种方法可以清理我的一些代码.(如果你想了解我正在做什么的更多背景知识,请看这个问题.)

我有一个BaseControl类,基本上,解析一些XML数据,然后,根据该数据中包含的内容,调用适当的UserControl并在其路上发送数据.这是一个例子:

public partial class BaseControl : User Control
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ... //code that parses the data
        var renewalDef = effort.Attributes["renewal_def"].Value;
        var effortNumber = effort.Attributes["renewal_effort_number"].Value;
        if (effortNumber == "1")
        {
            var effortControl = (NAVLEffort1) Page.LoadControl("~/NAVLSeriesControls/NAVLEffort1.ascx");
            effortControl.transactionData = transaction; //'transaction' is a Hashtable object
            HtmlContent.Controls.Add(effortControl); //'HtmlContent' is a PlaceHolder control on BaseControl.ascx page
        }
        if (effortNumber == "2")
        {
            var effortControl = (NAVLEffort2) Page.LoadControl("~/NAVLSeriesControls/NAVLEffort2.ascx");
            effortControl.transactionData = transaction; //'transaction' is …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net

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

C#中的菊花链方法

我是.NET和C#的新手,来自Ruby的背景.虽然我已经在C#中成功开发了几个小应用程序,但我还有很多需要学习的地方.但令我困惑的一件事是找到一种在对象上调用多个方法的有效方法.我将举一个使用字符串的例子.

我习惯于在Ruby中做这样的事情:

my_string = "The quick brown fox\tjumped over the lazy dog\t\n"
puts my_string.strip.split("\t")
Run Code Online (Sandbox Code Playgroud)

但是,要在C#中完成同样的事情,这就是我现在所知道的事情:

var myString = "The quick brown fox\tjumped over the lazy dog\t\n";
var myStringTrim = myString.Trim();
var myStringSplit = myStringTrim.Split('\t');
foreach (var s in myStringSplit)
    {
        Console.WriteLine(s);
    }
Run Code Online (Sandbox Code Playgroud)

那么,有没有更有效的方法在C#中实现这一目标?

这个特殊的例子让我想知道如果我使用这个方法来读取,解析和处理大型文本文件或类似的东西会对性能产生什么影响.

c# c#-4.0

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