У меня есть следующий метод:
public void MyMethod(object obj){
// implement
}
И я называю его так:
MyMethod(new { myparam= "waoww"});
Так как же мне реализовать MyMethod()
, чтобы получить значение myparam?
Редактировать
Я использую это:
dynamic d= obj;
string param = d.myparam;
но ошибка увеличивается:
'object' does not contain a definition for 'myparam'
также я использую точку останова и ясм. d, имеют свойство строки myparam.
И есть ли способ проверить динамический тип, если он содержит какое-либо свойство, подобное этому:
if(d.contain(myparam))?
Редактировать II
Это мой основной код:
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
}
и назовите его так:
<p>@Html.SecureActionLink("Secure Link between Areas", "Index", "Context",
new { area = "Settings" }, null)</p>
И ошибка:
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
РедактироватьIII
Это мое AssemblyInfo определения HtmlHelper:
[assembly: AssemblyTitle("MyProject.Presentation")]
[assembly: InternalsVisibleTo("cpanel.MyProject.dev")]
, но пока есть ошибка: 'object' does not contain a definition for 'area'
Я использую разные сборки, но как это возможно, когда я используюточка останова Я вижу, что у моего динамического areaobject
есть area
имя свойства, а также я вижу его значение, но ошибка говорит: 'object' does not contain a definition for 'area'
Я не могу понять, как это возможно?
Редактировать
Я изменяю сборку, и теперь динамический тип является внутренним, но ошибка остается, как и раньше