繁体   English   中英

在.net中这叫什么?

[英]What is this thingy called in .net?

我记得前一段时间,我正在基于C#剃须刀的网页上工作。 有一个响应属性,用作控制器和页面之间的一种管道。 我不知道它叫什么,但它有一个有趣的特性-

基本上,它的工作方式类似于字典(包含字符串,对象),因此您可以按任何名称在其中转储任何内容,除非您会像这样使用它:

ThingNameIDontRemember.name =随便

在添加了我想要的内容之后,我认为它们甚至出现在了另一端的智能感知自动完成中(与您对通用对象的期望不同)

该类型称为什么类型,并且在mvc捆绑包之外也可用? 我真的可以在当前的vb.net项目中使用类似的方法。

我认为您正在寻找ViewBag

ViewBag属性使您可以动态地将值从控制器共享到视图。 这是一个动态对象,这意味着它没有预定义的属性。 您可以通过简单地将ViewBag添加到属性中来定义它们。 在视图中,通过对属性使用相同的名称来检索这些值。

更一般而言,C#4引入了使用dynamic类型的dynamic类型化-如果表达式的类型为dynamic ,则绑定(确定名称的含义)直到执行时间才会发生。 例如:

dynamic d = "foo";
Console.WriteLine(d.Length); // Uses string.Length
d = new int[10];
Console.WriteLine(d.Length); // Uses the array Length
Console.WriteLine(d.Bang()); // Compiles, but will throw at execution time

对于常规抓斗,可以使用ExpandoObject

dynamic expando = new ExpandoObject();
expando.Foo = 10;
expando.Bar = "Some string";
Console.WriteLine(expando.Foo); // 10

动态类型还有很多,但希望这就是您想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM