【发布时间】:2013-07-11 20:55:58
【问题描述】:
在项目中考虑这段代码:
static void Main(string[] args)
{
DoSomething(new { Name = "Saeed" });
}
public static void DoSomething(dynamic parameters)
{
Console.WriteLine(parameters.Name);
}
这就像一个魅力。但是,一旦将这两个函数分成两个不同的项目,代码就会中断:
// This code is in a Console Application
static void Main(string[] args)
{
ExternalClass.DoSomething(new { Name = "Saeed" });
}
// However, this code is in a Class Library; Another project
public class ExternalClass
{
public static void DoSomething(dynamic parameters)
{
Console.WriteLine(parameters.Name);
}
}
我在第二种情况下得到的错误是:
object' 不包含“Name”的定义 (RuntimeBinderException)
为什么会出现此错误?什么是替代方法?如何将动态参数传递给另一个库中的方法,并在那里以简单的方式使用它?
注意:我对ExpandoObject 很熟悉,我不想使用它。
【问题讨论】:
-
搜索上面的链接花了 10 秒的谷歌搜索,想想看 :-)
-
@zerkms,谢谢,我不擅长 C# 关键字怎么样 ;) 谷歌它。
-
也许 :-) 我的搜索请求是:“C# 动态不同项目” PS:这些天我不使用 c# 开发,也没有使用过
dynamic -
@zerkms 他说:注意:我对 ExpandoObject 很熟悉,我不想使用它。所以这不是重复的
-
@Shahrooz Jefri ㇱ:哦,我明白了。是在最初的问题中吗?