Развертывание динамического объекта для передачи другому классу требует Microsoft.CSharp.dll? - PullRequest
1 голос
/ 11 декабря 2011

Я построил функцию:

 string removeFile(HttpContext context,HttpRequest r)
 {       
       dynamic d = new ExpandoObject() ;
       d.ItemCommand = r["itemId"].ToString();
       ...
       ...
       int res = new PolicyDal().Admin_Kits_AttachFile(d); //sending here the d.

в другом классе / файле:

   public int Admin_Kits_AttachFile(dynamic d)
   {
        DbCommand command = _webERPDB.GetStoredProcCommand("Admin_Kits_AttachFile");
        _webERPDB.AddInParameter(command, "@ItemCommand", DbType.String, d.ItemCommand);

Произошла следующая ошибка:

Один или несколько типов, необходимых для компиляции динамического выражения, не могут быть найденный. Вам не хватает ссылок на Microsoft.CSharp.dll и System.Core.dll

Я ссылался после нахождения DLL в FILE SYSTEM, поскольку ее не было в обычном справочном меню добавления.

почему это? почему он не скомпилируется? почему они не поместили dll в обычное меню добавления ссылок? (Мне пришлось найти DLL в файловой системе ...)

Ответы [ 2 ]

4 голосов
/ 11 декабря 2011

Эта сборка содержит DLR. Если вам нужно использовать динамическую диспетчеризацию в вашем приложении, на нее должны ссылаться. Он добавляется в качестве справочного по умолчанию при запуске нового приложения в VS 2010 (Консоль, WinForms, ASP.NET, Библиотека классов).

почему они не поместили dll в обычное справочное меню добавления?

На самом деле они сделали:

enter image description here

3 голосов
/ 11 декабря 2011

Эта ошибка всегда происходит, когда вы используете какую-то функцию о динамическом объекте. Complier выдаст ошибку об отсутствии Microsoft.CSharp.dll и System.Core.dll.

enter image description here

Причиной этой проблемы является то, что все динамические объекты должны динамически генерироваться классом во время выполнения, как показано на следующем рисунке.

enter image description here

Чтобы решить эту проблему, просто добавьте ссылку на «Microsoft.CSharp.dll», чтобы позволить динамической компиляции динамического объекта во время выполнения, как показано на рисунке ниже.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...