Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序设计,分离逻辑,是否委托_C#_User Controls_Delegates - Fatal编程技术网

C# 应用程序设计,分离逻辑,是否委托

C# 应用程序设计,分离逻辑,是否委托,c#,user-controls,delegates,C#,User Controls,Delegates,各位代表,这里适用吗?如果是,怎么做?代码示例,因为我是这个领域的新手 逻辑分离是我打算实现的,我认为我下面的任务将是一个完美的候选人。我已经读到,对象应该是相当独立的,而不是硬连接到另一个 ASPX(第页) ASCX(用户控制) 上面的任务是一个文件上传模块。执行上载的控件位于UserControl中,该控件已被拖到ASPX页面上 ASPX页面上的提交按钮应启动文件上载过程。 这应该是一个相当常见的场景,页面将其他信息保存到数据库,并上载文件 根据过去的经验,我的直觉是通过公共属性公开User

各位代表,这里适用吗?如果是,怎么做?代码示例,因为我是这个领域的新手

逻辑分离是我打算实现的,我认为我下面的任务将是一个完美的候选人。我已经读到,对象应该是相当独立的,而不是硬连接到另一个

ASPX(第页)

ASCX(用户控制)

上面的任务是一个文件上传模块。执行上载的控件位于UserControl中,该控件已被拖到ASPX页面上

ASPX页面上的提交按钮应启动文件上载过程。 这应该是一个相当常见的场景,页面将其他信息保存到数据库,并上载文件

根据过去的经验,我的直觉是通过公共属性公开UserControl中的上载控件。 这会将附件UserControl绑定到页面


我如何才能解开它,可能是使用委托?

视图需要关于其附件控件的哪些信息?对于包含附件控件的视图,附件控件需要知道什么

我认为
委托(流上传内容)
可以让您进一步解耦,但是如果您使用的是System.Web.Page模型。。。目前看来还缺乏将事情解耦的动机

让视图接受回调会反转应用程序中的适当依赖路径,不是吗

<uc1:Attachment ID="Attachment1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
protected void Button1_Click(object sender, EventArgs e)
{
  // Check the files and upload
}
<MyControl:Upload ID="Upload1" runat="server" 
AllowedFileExtensions=".zip,.jpg,.jpeg,.doc,.gif,.png,.txt"
    MaxFileInputsCount="3"
    OverwriteExistingFiles="false"  
onfileexists="Upload1_FileExists" 
onvalidatingfile="Upload1_ValidatingFile" />
public Upload AttachmentControl
{
    get { return this.Upload1; }
}