我需要帮助识别编程技术,以便我可以研究和修复它

时间:2018-01-31 20:02:52

标签: c# asp.net compiler-errors language-features assembly-references

守则:

ParentControl.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ParentControl.ascx.cs" 
Inherits="ParentControl" %>
<%@ Register Src="~/ChildControl.ascx" TagPrefix="Prefix" TagName="ChildControlTag" %>

ParentControl.ascx.cs

public partial class ParentControl : UserControl
{
   List<ASP.childcontrol_asxc> controlList = new List<ASP.childcontrol_asxc>();
   ... inside a public property setter ...
   var control = new ASP.childcontrol_ascx();  // <ABC> what the heck is this reference?
   controlList.Add(control);
   ...
}

ChildControl.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ChildControl.ascx.cs" 
Inherits="ChildControl" %>
<asp:Repeater ID="childRepeater" runat="server" EnableViewState="false" 
ViewStateMode="Disabled">

ChildControl.ascx.cs

public partial class ChildControl : UserControl
{
   ...

   protected void Page_Load(object sender, EventArgs e)
   {
      childRepeater.DataSource = xyz;  // <XYZ> crashes if I don't use the weird reference  
   }
}

问题:

我不明白标有<ABC>的参考评论是什么。那不是我定义的课程......但智能感知并没有抱怨。如果我按F12,它会转到ChildControl.ascx顶部的<%@ Control ... %>标记,而不是ChildControl.ascx.cs中的控件定义。 我不明白控件的其他版本是什么,为什么它在ASP命名空间中,或者直接使用它而不是控件的含义是什么。更糟糕的是,这在我的本地工作站上编译很好,但是在我们用于CI的TFS服务器上抛出编译器错误。

问题:

有没有人知道这种使用/引用自定义用户控件的方法的名称,和/或有我可以查看的链接/信息,以便更好地处理这是什么以及含义是什么?我一直无法通过Google找到任何有用的内容。虽然修复/解决方法很棒 - 我仍然希望能够研究这项技术。

探索:

我尝试用实际的类名替换用法,而不是奇怪的ASP.class_ascx引用...如果我这样做它编译得很好,但不幸的是它在运行时失败了。看起来其他引用改变了它与asp.NET生命周期的交互方式 - 在子控件的aspx中定义的服务器控件在子控件的Page_Load()中标记为<XYZ>(标记为ASP.control_ascx)。在奇怪的Page_Load()参考方法下,转发器在到达子控件的The type or namespace name 'usercontrol_ascx' does not exist in the namespace 'ASP' (are you missing an assembly reference?)时已正确定义,但我不明白为什么。

该项目通过DotNetCompilerPlatform NuGet package在本地工作站上使用Roslyn编译器,但我相信它只是在CI服务器上使用VS / TFS 2015内置编译器。这可以解释为什么TFS会抛出编译器错误 - 它告诉我var db = require('../dbconnection'); var register = { registerAuth: function(data, callback){ db.query("insert sanames (id, fullName, email, confirmEmail, password, confirmPassword) values(newid(), '"+data.fullName+"', '"+data.email+"', '"+data.confirmEmail+"', '"+data.password+"', '"+data.confirmPassword+"')") } } // db.query('insert sanames (id, fullName, email, confirmEmail, password, confirmPassword, dateAdded) values(newid(), "'data.fullName'", "'data.email'", "'data.confirmEmail'", "'data.password'", "'data.confirmPassword')")',callback) module.exports = register;。我正在考虑配置TFS以使用NuGet包中的编译器,然后希望编译 - 但这仍然很奇怪,我想了解它。

1 个答案:

答案 0 :(得分:1)

这是ASPX文件编译的类。它继承了您的类并添加了呈现ASPX内容的代码。