我主要在 WinForms 环境中编程,除此之外,还经常使用TreeView
控件。
在这种情况下,我开发了一个实用程序类,它有很多我最常用的功能 - 例如将 DataTable 转换为可以输出到文本文件的分隔字符串,弹出“另存为”对话框并返回用户选择的文件名或从指定的树视图返回检查的树节点列表等。
鉴于我有这个实用程序类,我现在正试图将它添加到 ASP.Net 应用程序中,它给了我很多明显的错误,例如,TreeNode
在 WinForms 和 ASP 之间具有不同的属性。
现在,我知道对我的第一个也是最明智的反应是将所有这些不同的功能分离到单独的实用程序文件和库中,并根据需要添加它们/适用于每个应用程序 - 我了解这样做的好处和逻辑,但我的问题更多是关于创建课程本身的理论。
有没有办法创建一个包含例如 WinForms 对象的类,并且我仍然可以将它添加到 ASP 应用程序而不会出错?换句话说,我不会使用这些函数,因为它们显然不适用于这个架构,但是有没有办法阻止错误出现,只是因为对象在这个架构中看起来是错误的,只是让编译器接受那个文件- 那我就只使用我知道适合这个架构的功能吗?
作为我的实用程序类中的一个函数的愚蠢示例,它在 winForms 中很好,但在 ASP 中出现错误:
Public Shared Function CreateTemporaryNode(ByVal NodeName As String) As TreeNode
Dim TempNode As New TreeNode
TempNode.Name = NodeName
TempNode.Text = NodeName
Return TempNode
End Function
在这种情况下'Name' is not a member of 'System.Web.UI.WebControls.TreeNode'
编辑:只是为了澄清-我了解在这种特定情况下的不良编程习惯。我的问题更多是关于尝试了解是否有办法从编译器中“隐藏”缺少库的函数,这样一个类就可以在多个体系结构中使用,而无需为你不会使用的函数添加库/需要。
我希望这个问题有意义,并感谢您的专业知识。