当前位置: 首页 > 编程语言 > C#

如果设置了MasterType,如何使用自动生成的Master属性修复名称空间问题分享

时间:2023-04-10 13:32:30 C#

C#学习教程:如果设置了MasterType,如何解决自动生成的主属性的命名空间问题寻求以下解决方案:在.aspx页面中,您可以在.aspx.designer中进行设置以生成自动生成的属性publicnewMasternameMaster{get{return((Masternamee)(base.Master));}}工作做得很好。但是,如果我在.aspx文件中进行更改,该属性会自动生成,如下所示:publicnewNAMESPACE1.MasternameMaster{get{return((NAMESPACE1.Mastername)(base.Master));之后编译将失败,因为无法在给定的命名空间中解析MasterPage的类。母版页将NAMESPACE1作为命名空间。每个内容页都有相同的NAMESPACE1。自动生成的属性试图在NAMESPACE1.NAMESPACE1中查找母版页类,但由于不存在,所以会失败。当然我可以删除第一个NAMESPACE1。使应用程序再次可编辑,但几乎每次我在.aspx文件中进行更改时它都很糟糕。有没有办法避免这个问题?我能想到的唯一方法是忽略自动生成的属性,并在每次我想访问母版页时进行显式转换。编辑:我正在使用VisualStudio2008ProfessionalSP1。出于某种原因,设计者认为母版页定义在命名空间NAMESPACE1中,因此查看母版页定义(及其背后的代码)以检查其命名空间是否未被修改(可能是偶然的)。如果没有什么明显的,可能需要在NAMESPACE1中搜索所有文件(*.cs、*.aspx、*.master、...)。(这是使用VCS有用的地方——您可以查看更改历史记录。)它实际上更像是一个设计器“功能”。?设计器文件中使用的主名称将从.Master文件的Inherits属性中提取。因此,更改您对Inherits属性的限定方式,这将更改创建设计器文件时使用的类名。我找到了一个可行的解决方案。我不会在designerfile中使用自动生成的属性。我将编写自己的包装属性,在每个内容页面中实施。当我在我的aspx页面的SOURCE视图中时,我遇到了同样的问题。由于某种原因,页面永远无法正确创建,并且一直给我无效的命名空间错误,直到我实际更改为设计视图并调整控件大小,最后错误消失。它在某个地方使用了一些缓存数据(即使构建/清理解决方案也没有清除它)并且直到页面被设计者重新创建,它才会生成该错误。改成这样就完美了以上是C#教程:HowtoFixNamespaceIssueswiththeAuto-GeneratedMasterAttributeifMasterTypeisset的所有内容分享,如果对大家有用需要进一步了解C#教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: