Mam metodę w następujący sposób:Get wartości od anonimowego typu
public void MyMethod(object obj){
// implement
}
A ja nazywam to tak:
MyMethod(new { myparam= "waoww"});
Więc jak mogę wdrożyć MyMethod()
uzyskać wartość myparam?
Edit
Używam tego:
dynamic d= obj;
string param = d.myparam;
ale wzrost błędu:
'object' does not contain a definition for 'myparam'
również użyć przerwania i widzę d mają myparam właściwości String.
A czy jest jakiś sposób, aby sprawdzić dynamiczny typ, jeśli zawierają żadnego majątku takiego:
if(d.contain(myparam))?
Edycja II
To jest mój główny kod:
public static MvcHtmlString SecureActionLink(this HtmlHelper htmlHelper,
string linkText, string actionName, string controllerName,
object routeValues, object htmlAttributes) {
string areaName =
(string)htmlHelper.ViewContext.RouteData.DataTokens["area"];
dynamic areaObject = routeValues;
if(areaObject != null && !string.IsNullOrEmpty(areaObject.area))
areaName = areaObject.area;
// more
}
i nazwij go jako:
<p>@Html.SecureActionLink("Secure Link between Areas", "Index", "Context",
new { area = "Settings" }, null)</p>
i błąd jest:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'object' does not contain a
definition for 'area'
Line 303: dynamic areaObject = routeValues;
Line 304:
Line 305: if(areaObject != null && !string.IsNullOrEmpty(areaObject.area))
Line 306: areaName = areaObject.area;
Line 307:
Source File: D:\Projects\MyProject\HtmlHelpers\LinkExtensions.cs Line: 305
Edycja III
To mój AssemblyInfo definicji HtmlHelper:
[assembly: AssemblyTitle("MyProject.Presentation")]
[assembly: InternalsVisibleTo("cpanel.MyProject.dev")]
ale wystąpił błąd jeszcze: 'object' does not contain a definition for 'area'
używam różne zespoły ale jak to możliwe, kiedy używam breakpointa, widzę, że mój dynamiczny areaobject
ma area
nazwa właściwości, a także widzę wartość tego, ale błąd powiedzieć: 'object' does not contain a definition for 'area'
Nie mogę wymyślić, jak to możliwe?
Edit
zmienić zespół i teraz dynamiczny typ jest wewnętrzny ale błąd pozostaje przed
Typy anonimowe są ważne tylko w zakresie, w którym zostały utworzone. W takim przypadku nie będziesz mógł go użyć w MyMethod – Jon
Dlaczego próbujesz to zrobić? To najprawdopodobniej zły pomysł. – svick
Byłem tę samą odpowiedź z tego artykułu. https://stackoverflow.com/questions/5286695/how-do-i-get-data-from-an-anonymous-type-thats-been-converted-to-an-object/30462304#30462304 –