问题标签 [strong-typing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
2621 浏览

c# - 在不复制属性名称的情况下强类型调用 web.config?

我在这里搜索了答案。很抱歉,如果之前有人问过这个问题(我怀疑它已经问过了)。

摘要:如何在不复制属性名称的情况下对 web.config 进行强类型调用?


详细信息:在我的代码中,我尽量减少字符串的使用,而且我不喜欢定义两次。

作为对这两个习惯的补充,我将 AppSettings 的使用(及其字符串)限制为一个类,我在整个项目中都引用了它。AppSettings 类公开公共属性:

如何保留此类并防止属性名称重复(第 12 行和第 14 行)?

或者,您可能会推荐什么其他解决方案?

0 投票
7 回答
2844 浏览

.net - ListBox.DisplayMember = [String] 我可以以某种方式解决它而不是 .NET 中的字符串吗?

这个问题是针对对象数据源提出的。所以考虑一下我有一堂课

我已经将一个列表框数据绑定到这些对象的列表中。所以我说

但我的问题是,当我将 Customer 类的名称重构为

DisplayMember 仍然停留在“名称”。这将失败。所以它降低了我重构域对象的能力。有什么办法吗?

0 投票
1 回答
367 浏览

html - 使用 Joel 建议的类型系统防止 XSS 攻击

Podcast 58(大约 20 分钟)中,Jeff 抱怨了问题,HTML.Encode()而 Joel 谈到了使用类型系统来拥有普通字符串和 HTMLStrings:

  • 关于默认情况下无法进行 HTML 编码的视图引擎的邪恶性的简短政治咆哮。这种设计选择的问题在于它不是“默认安全的”,这对于框架或 API 来说总是错误的选择。忘记在您的 Web 应用程序的一个臭地方编码一些用户输入的数据,您将完全拥有 XSS。相信它。我知道,因为它发生在我们身上。多次!

  • Joel 坚持认为,使用强类型语言和正确的框架,(理论上)完全消除 XSS 是可能的——这需要使用特定的数据类型,这是向浏览器发送数据的唯一方式。该数据类型将在编译时进行验证。

博客文章中的评论提到使用静态分析来发现潜在的弱点。成绩单 Wiki尚未完成。

是否可以在没有新的 ASP.NET 框架的情况下实施 Joel 的建议?

是否可以简单地通过子类化每个控件并执行基于 HTMLString 的新接口来实现它?如果大多数人已经将控件子类化以便更好地注入特定于站点的功能,那么这不是很容易实现吗?

是否值得这样做而不是投资于静态分析?

0 投票
5 回答
555 浏览

c#-4.0 - 有没有一种融合了动态类型和强类型优势的理想语言?

我有兴趣学习一种在内部将对象处理为哈希表(如 JavaScript)但可以用强类型包装它们以在设计时提供代码完成/智能感知的好处的语言。以下是我希望这种梦幻语言发挥作用的方式:

我希望这个程序能够无误编译、无异常运行并在控制台上打印 “Miauew”。有没有一种语言可以做到这一点?也许是 C#4.0?

0 投票
2 回答
387 浏览

asp.net-mvc - NHibernate + ASP.Net MVC - 如何根据用户选择的字段对强类型的数据进行排序

我正在使用远程排序和分页在网格(ExtJS)中为用户呈现数据。假设我有一个包含一些订单的网格。订单实体看起来像 Order{OrderNumber, Customer, Date, Address{Street, City, PostCode}}。Customer 被 NH 映射为关系,Address 被映射为组件。网格中显示的数据被展平为如下命名的列:OrderNumber、Customer.Number、Customer.Name、Date、Address.Street、Address.City、Address.PostCode。

用户选择他想要排序的列,网格将字段名称发送到服务器。现在在服务器端,我需要向后恢复实体属性属于网格字段名称,并确定它是组件还是关系,并使用 CreateAlias + AddOrder 等构建标准。这个逻辑充满了如下代码:

这已经简化了很多,但目前看起来一定是这样的。我正在寻找一些通用的更智能的解决方案。有什么想法吗?我现在面临的问题是我可以有一个转换实体属性(包括嵌套组件和关系)的约定,但是我需要一个方法来确定该字段是否像组件或关系一样映射。这将是相当沉重的......

0 投票
4 回答
540 浏览

oop - 在强类型 OOP 语言中进行鸭子类型的参数?

有没有用这种语言(例如 C#、Java)写过东西,却错过了鸭子打字的情况?(有关反对鸭子类型的论点,请参阅此问题)

0 投票
2 回答
1788 浏览

c# - 为什么我不能从 System.Object 中提取 ushort 然后将其转换为 uint?(C#)

我正在操作列表中的项目,即System.Management.ManagementObjectCollection. 这些项目中的每一个都是一个System.Management.ManagementObject包含由字符串索引的属性。看:

每个“字典访问”都queryObj返回一个 C# object,这实际上是该属性应该是什么——我必须事先知道它们的“真实”类型,这没关系。

问题是,我InvalidCastExceptionuint演员阵容中得到了一个。我必须使用真正的类型,即ushort. 演员表不应该ushortuint可以接受和明显的吗?

在这种情况下,我最终会将这些值转换为string,但是如果我必须将它们放入uintorintlong变量中怎么办?

0 投票
2 回答
773 浏览

asp.net - WebForms 3.5 中的强类型 ASCX?

我希望摆脱 WebForms 3.5 应用程序中控件的代码隐藏。再次被 MVC 中如何完成的错误所困扰,我想通过执行以下操作更接近这种方法:

这给了我你期望的解析器错误,所以我记得这是一个等待 MVC 预览中修复的问题,并将其更改为:

但这也不起作用!MVC 团队是如何利用这种能力的?MVC 项目类型而不是最新的 VS2008 Service Pack 有什么特别之处吗?

除了放弃并要求未来的模板具有代码隐藏文件之外,我最好的选择是什么让这个尽可能接近通用用户控制方法?

0 投票
3 回答
1586 浏览

objective-c - 创建一个只包含给定类的对象的数组

好的,所以我有下面的代码(Objective-C FYI),我想知道是否要创建一个 NSMutableArrayc_data对象,我该怎么做呢?这有点像List<c_data> cData在 C# 中声明 a 。

如果您查看课程feat_data,我正在尝试制作cData课程的数组c_data。我已经将我的尝试包括在内,但我认为它不正确,因为c_data它不是数组。有什么建议么?

0 投票
7 回答
3848 浏览

c# - 在 C# 中是否有一种很好的强类型方法来执行 PropertyChanged 事件?

除了 INotifyPropertyChanged 的​​ PropertyChanged 事件的属性名称之外,更改属性名称并期望 Visual Studio 中的重命名功能负责所有必要的重命名,这一定是一个比较常见的事件。有没有更好的方法让它强类型化,这样你就不需要记住手动重命名它?