Rozważmy następujący kod w projekcie:Dlaczego ten parametr dynamiczny nie działa?
static void Main(string[] args)
{
DoSomething(new { Name = "Saeed" });
}
public static void DoSomething(dynamic parameters)
{
Console.WriteLine(parameters.Name);
}
To działa jak czar. Jednakże, jak najszybciej oddzielić te dwie funkcje w dwóch różnych projektów, kod przełamuje:
// 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);
}
}
Błąd pojawia się w drugim przypadku jest:
obiekt”nie zawierają definicji "Nazwa" (RuntimeBinderException)
Dlaczego pojawia się ten błąd? Jaka jest alternatywna metoda? Jak mogę przekazać dynamiczny parametr do metody w innej bibliotece i użyć go w prosty sposób?
Uwaga: znam ExpandoObject
i nie chcę tego używać.
Szukanie powyższego linku zajęło 10 sekund googlowania, pomyśl :-) – zerkms
@zerkms, dziękuję, co powiesz na to, że nie byłem dobry w C# słowach kluczowych;) google to. –
Możliwe :-) Moja prośba o wyszukanie brzmiała: "C# dynamiczny inny projekt" PS: Nie rozwijam się w C# obecnie i nie używałem 'dynamic' albo – zerkms