标签: dynamicobject

ExpandoObject,DynamicObject和dynamic之间的差异

之间有什么区别System.Dynamic.ExpandoObject,System.Dynamic.DynamicObjectdynamic

在哪些情况下你使用这些类型?

.net c# dynamic expandoobject dynamicobject

162
推荐指数
3
解决办法
4万
查看次数

dynamic不包含项目引用中属性的定义

我收到的错误是:

'object'不包含'Title'的定义

所有代码也在github上

我有一个看起来像这样的ConsoleApplication1

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Movie m = new Movie();
            var o = new { Title = "Ghostbusters", Rating = "PG" };
            Console.WriteLine(m.PrintMovie(o));
        }
    }
} 
Run Code Online (Sandbox Code Playgroud)

Movie.cs

public class Movie : DynamicObject
{
    public string PrintMovie(dynamic o)
    {
        return string.Format("Title={0} Rating={1}", o.Title, o.Rating);
    }
} 
Run Code Online (Sandbox Code Playgroud)

它可以在SAME项目中正常工作,但如果我添加ConsoleApplication2并引用ConsoleApplication1并添加Exact相同的代码

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Movie m = new Movie();
            var o = new { Title …
Run Code Online (Sandbox Code Playgroud)

.net c# dynamic dynamicobject

81
推荐指数
4
解决办法
4万
查看次数

C#4.0 Dynamic vs Expando ......它们适合哪里?

我正在尝试学习C#4.0附带的所有新东西.我无法理解DynamicObjectExpandoObject类型之间的差异.它似乎DynamicObject用于例如当您想要从Python脚本访问变量以及ExpandoObject与COM/Office对象交谈时.我对吗?它们的用途有何不同?

dynamic-keyword expandoobject dynamicobject c#-4.0

49
推荐指数
1
解决办法
3万
查看次数

循环DynamicObject属性

我正在尝试理解DynamicObject类型.发现这篇MSDN文章非常简洁明了,如何创建和使用DynamicObject:

http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.aspx

本文包含一个继承自DynamicObject的简单DynamicDictionary类.

现在我想迭代我动态创建的DynamicObject属性:

dynamic d = new DynamicDictionary();
d.Name = "Myname";
d.Number = 1080;

foreach (var prop in d.GetType().GetProperties())
{
  Console.Write prop.Key;
  Console.Write prop.Value;
}
Run Code Online (Sandbox Code Playgroud)

显然这不起作用.我想学习如何在不改变DynamicDictionary类的情况下做到这一点,因为我真的想学习如何将它用于从DynamicObject继承的各种现有对象.

需要反思吗?我肯定错过了什么...

c# dynamicobject

43
推荐指数
2
解决办法
5万
查看次数

有没有办法将动态或匿名对象转换为强类型的声明对象?

如果我有一个动态对象或匿名对象,其结构与强类型对象的结构完全匹配,是否有.NET方法从动态对象构建类型化对象?

我知道我可以使用LINQ dynamicList.Select(dynamic => new Typed { .... }类型的东西,或者我可以使用Automapper,但我想知道是否没有专门为此构建的东西?

.net anonymous-class dynamicobject c#-4.0

37
推荐指数
3
解决办法
3万
查看次数

无法将带有[]的索引应用于"System.Dynamic.DynamicObject"类型的表达式

当我尝试为ViewBag分配值时,我收到以下错误:

无法将带有[]的索引应用于"System.Dynamic.DynamicObject"类型的表达式

我的代码如下:

public ActionResult Success()
{
   ViewBag["SuccessBody"] = TempData["successBody"];
   return View();
}
Run Code Online (Sandbox Code Playgroud)

PS:为什么我这样做你可能会问?因为我正在重定向到Success动作,所以我需要在重定向中保留的东西.然后,我将值分配给ViewBag,以便将值传递给"共享"视图.

c# asp.net-mvc dynamicobject viewbag

27
推荐指数
3
解决办法
2万
查看次数

在.NET 4中是否有mongodb C#驱动程序支持System.Dynamic.DynamicObject?

我正在开发一个使用.NET Razor和mongodb的项目.我想做这样的事情:

@{
    var feeds = DP.Database.GetCollection("feeds").FindAll();
}
<ul>
    @foreach (dynamic feed in feeds)
    {
        <li>@feed.message - @feed.from.name</li>
    }
</ul>
Run Code Online (Sandbox Code Playgroud)

但是,当前的mongodb C#驱动程序FindAll()返回不支持动态对象的BsonDocument集合.有人知道.NET 4动态支持的mongodb C#驱动程序吗?

非常感谢

mongodb dynamicobject c#-4.0 mongodb-.net-driver

17
推荐指数
3
解决办法
1万
查看次数

获取动态对象中方法的泛型类型调用

我开始使用.Net中的动态对象,我无法弄清楚如何做某事.

我有一个继承自DynamicObject的类,我重写了TryInvokeMember方法.

例如

class MyCustomDynamicClass : DynamicObject
{
    public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
    {
        // I want to know here the type of the generic argument
    }
}
Run Code Online (Sandbox Code Playgroud)

在该方法中,我想知道调用中泛型参数的类型(如果有的话).

例如,如果我调用以下代码,我想在动态对象的覆盖方法中获取System.Boolean和System.Int32的值

dynamic myObject = new MyCustomDynamicClass();
myObject.SomeMethod<bool>("arg");
myObject.SomeOtherMethod<int>("arg");
Run Code Online (Sandbox Code Playgroud)

目前,如果我在覆盖方法中放置一个断点,我可以得到被调用方法的名称("SomeMethod"和"SomeOtherMethod",以及参数的值,但不是泛型类型).

我怎样才能获得这些价值?

谢谢!

c# generics dynamic dynamicobject

15
推荐指数
1
解决办法
2584
查看次数

有没有办法创建支持接口的DynamicObject?

我可以定义一个派生自DynamicObject并支持接口(ICanDoManyThings)的类,而无需在接口中实现每个方法吗?

我正在尝试创建一个动态代理对象,并希望通过MyProxyClass.TryInvokeMember的实现来处理此类上的方法调用,这可能会也可能不会将它们传递给包装对象.

这可能吗?

谢谢

c# dynamic-proxy dynamicobject c#-4.0

12
推荐指数
1
解决办法
6505
查看次数

从Expando /动态对象中动态删除成员

我正在寻找一种从动态对象中动态删除成员的方法(可能我们可以在这里使用Expando对象吗?).

好的,我想需要一点澄清......

当你这样做:

dynamic foo = new ExpandoObject();
foo.Bar = 42;
foo.Jar = 25;
Run Code Online (Sandbox Code Playgroud)

Bar,"罐子"属性会在运行时动态添加.我向用户显示这个,他可能会进一步添加自己的属性(表单可用选项),这可以通过添加成员到动态对象来完成.

但他也可以从Foo对象中删除成员(比如'Jar'),我们如何删除成员表单动态对象?我们可以在这里使用Expando对象吗?

c# dynamic expandoobject dynamicobject

12
推荐指数
0
解决办法
4517
查看次数