次のようなエラーが発生します。
「オブジェクト」には「タイトル」の定義が含まれていません
すべてのコードは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));
}
}
}
およびMovie.cs
public class Movie : DynamicObject
{
public string PrintMovie(dynamic o)
{
return string.Format("Title={0} Rating={1}", o.Title, o.Rating);
}
}
同じプロジェクトからは正常に機能しますが、ConsoleApplication1を参照してConsoleApplication2を追加し、まったく同じコードを追加すると、
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Movie m = new Movie();
var o = new { Title = "Ghostbusters", Rating = "PG" };
Console.WriteLine(m.PrintMovie(o));
}
}
}
エラーが発生します:
「オブジェクト」には「タイトル」の定義が含まれていません**
動的オブジェクト内にある場合でも。
- o.Title'o.Title'は、タイプ'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'dynamic{Microsoft.CSharp.RuntimeBinder.RuntimeBinderException}の例外をスローしました。
スクリーンショットは次のとおりです。
私はこのようなことをしていて、テストプロジェクトから映画関数を呼び出そうとしています。