我是第一次尝试仿制药而且遇到了问题.
我有一个dll批量发送消息
该DLL中有一个"Message"类和一个"Batch"类
在批次类上,我有一些公共属性
批处理类的公共属性是一个名为"Messages"的属性,它是"Message"类的列表,如下所示:
public List<Message> Messages {get;set;}
Run Code Online (Sandbox Code Playgroud)方法1
然后我有一个测试exe,我想在"Batch"类上设置属性,如下所示:
Batch myBatch = new Batch()
myBatch.Messages.Add(
new MyNameSpace.Message(txtToAddress.Text, txtMessage.Text));
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我得到:
"你调用的对象是空的."
方法2
玩了一下后,我看到我可以在测试exe中成功完成以下操作:
List<MyNameSpace.Message> myMessages = new List<MyNameSpace.Message>();
myBatch.Messages.Add(
new MyNameSpace.Message(txtToAddress.Text, txtMessage.Text));
myBatch.Messages = myMessages;
Run Code Online (Sandbox Code Playgroud)
我想让它以第一种方式工作,因为其他程序员将使用dll,并且使用第一种方法似乎更直观.
为了让第一种方法起作用,我错过了什么?
为服务器端的内容编写测试非常值得,但我听说为UI内容编写单元测试真的很难,而且它们很脆弱且不可靠.我希望更有信心,我所做的更改不会破坏我网站上导入页面的主要部分.
有什么想法或经历吗?
interface IFolderOrItem<TFolderOrItem> where TFolderOrItem : FolderOrItem {}
abstract class FolderOrItem {}
class Folder : FolderOrItem {}
abstract class Item : FolderOrItem {}
class Document : Item {}
Run Code Online (Sandbox Code Playgroud)
现在我想这样做:
class Something
{
IFolderItemOrItem<Item> SelectedItem { get; set; }
void SomeMagicMethod()
{
this.SelectedItem = (IFolderOrItem<Item>)GetMagicDocument();
// bad bad bad ... ??
}
IFolderOrItem<Document> GetMagicDocument()
{
return someMagicDocument; // which is of type IFolderOrItem<Document>
}
}
Run Code Online (Sandbox Code Playgroud)
有没有可能让这个工作?
没有网址的正则表达式是什么http://www.?当用户输入uri名称时,我想验证它是否是uri
仅仅是出于介入:如果静态变量被排除在外,你认为Java会成为一种更好的语言吗?有效地用单身人士取代单身人士吗?这里定义.
如果您这么认为:您能详细说明将其包含在语言中的动机是什么?
我想知道如何在数组中获取我的方法的传入参数.或者只是动态检索我的参数值.
意思是,一个叫:
MyMethod(10, "eleven");
Run Code Online (Sandbox Code Playgroud)
方法:
void MyMethod(int Test, str Test2) {}
Run Code Online (Sandbox Code Playgroud)
会在数组中解析如下:
{{"Test" => 10}, {"Test2", "eleven"}}
Run Code Online (Sandbox Code Playgroud)
如果我能用反射实现这一目标会更好.以某种方式使用StackTrace.
我正在尝试让ASP.NET 3.5 GridView在显示时将所选值显示为字符串,并显示DropDownList以允许我在编辑时从给定的选项列表中选择一个值.看起来很简单?
我的gridview看起来像这样(简化):
<asp:GridView ID="grvSecondaryLocations" runat="server"
DataKeyNames="ID" OnInit="grvSecondaryLocations_Init"
OnRowCommand="grvSecondaryLocations_RowCommand"
OnRowCancelingEdit="grvSecondaryLocations_RowCancelingEdit"
OnRowDeleting="grvSecondaryLocations_RowDeleting"
OnRowEditing="grvSecondaryLocations_RowEditing"
OnRowUpdating="grvSecondaryLocations_RowUpdating" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblPbxTypeCaption" runat="server"
Text='<%# Eval("PBXTypeCaptionValue") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlPBXTypeNS" runat="server"
Width="200px"
DataTextField="CaptionValue"
DataValueField="OID" />
</EditItemTemplate>
</asp:TemplateField>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
不处于编辑模式时,网格显示OK - 所选PBX类型在asp:Label控件中显示其值.这并不奇怪.
我将DropDownList的值列表加载到窗体事件中调用的本地成员_pbxTypes中OnLoad.我验证了这一点 - 它有效,值得存在.
现在我的挑战是:当网格进入特定行的编辑模式时,我需要绑定存储在其中的PBX列表_pbxTypes.
很简单,我想 - 只需抓住RowEditing事件中的下拉列表对象并附加列表:
protected void grvSecondaryLocations_RowEditing(object sender, GridViewEditEventArgs e)
{
grvSecondaryLocations.EditIndex = e.NewEditIndex;
GridViewRow editingRow = grvSecondaryLocations.Rows[e.NewEditIndex];
DropDownList ddlPbx = (editingRow.FindControl("ddlPBXTypeNS") as DropDownList);
if (ddlPbx != null)
{ …Run Code Online (Sandbox Code Playgroud) 如何附加onclick事件,link_to_function以便单击事件刷新页面上的元素(使用partials)?
当用户单击生成的链接时,我想刷新包含代码的部分,以便i更新.
def add_step_link(form_builder)
logger.info 'ADD_STEP_LINK'
link_to_function 'add a step' do |page|
form_builder.fields_for :steps, Step.new, :child_index => 'NEW_RECORD' do |f|
logger.info 'inserted js'
html = render(:partial => 'step', :locals => { :step_form => f, :i=>@i+=1})
page << "$('steps').insert({ bottom: '#{escape_javascript(html)}'.replace(/NEW_RECORD/g, new Date().getTime()) });"
end
end
end
Run Code Online (Sandbox Code Playgroud)
我有一个更大的形式,只包含:
<%= add_step_link(technique_form) %>
Run Code Online (Sandbox Code Playgroud)
我正在尝试跟踪技术中的步骤数.在我创建的表单中,用户可以向一组指令添加新步骤.现在,我有步骤1-7的默认字段.添加一步,让您步骤8.问题是后续步骤也编号为'8'.
为了我自己的目的,我正在http://railsforum.com/viewtopic.php?id=28447中扩展"动态形式的多个子模型"教程.
我将使用COM将使用C#编写的服务公开给传统的C++应用程序.向非托管客户端报告错误的最佳方法是什么?抛出异常或只返回错误值?
谢谢,斯特凡诺
我们的服务往往在客户服务器的夜晚入睡,然后很难醒来.似乎发生的事情是进程堆(有时几百MB)被移动到交换文件中.这种情况发生在晚上,当我们的服务没有使用时,其他人计划运行(数据库备份,AV扫描等).发生这种情况时,在几小时不活动后,对服务的第一次呼叫需要几分钟(随后的呼叫需要几秒钟).
我很确定这是一个虚拟内存管理问题,我真的很讨厌强迫操作系统将我们的服务保留在物理内存中.我知道这样做会损害服务器上的其他进程,并降低整体服务器吞吐量.话虽如此,我们的客户只是想让我们的应用程序响应.他们不关心夜间工作需要更长时间.
我依旧记得有一种方法可以强制Windows将页面保留在物理内存中,但我真的很讨厌这个想法.我更倾向于一些内部或外部监视器,它将启动更高级别的功能(已经有一些内部调度程序做得很少,没有任何区别).如果有第三方工具提供的那种服务本来就一样好.
我很想听到有关此类问题的任何意见,建议和常见解决方案.该服务使用VC2005编写,可在Windows服务器上运行.