我複製和粘貼WebMatrix.WebData.IDatabase
來源,但VStudio標記動態話,說請勿使用'System.Runtime.CompilerServices.DynamicAttribute'。使用「動態」的關鍵字,而不是
不要使用「System.Runtime.CompilerServices.DynamicAttribute」。改爲使用 '動態'關鍵字。
爲什麼當原始.net框架使用它時會出現此錯誤?
的源代碼是在這裏:
namespace WebMatrix.WebData
{
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
internal interface IDatabase : IDisposable
{
int Execute(string commandText, params object[] args);
[return: Dynamic(new bool[] { false, true })]
IEnumerable<object> Query(string commandText, params object[] parameters);
[return: Dynamic]
object QuerySingle(string commandText, params object[] args);
[return: Dynamic]
object QueryValue(string commandText, params object[] parameters);
}
}
,我在這裏得到同樣的錯誤:
namespace WebMatrix.WebData
{
internal class DatabaseWrapper : IDatabase, IDisposable
{
private readonly Database _database;
public DatabaseWrapper(Database database)
{
this._database = database;
}
public void Dispose()
{
this._database.Dispose();
}
public int Execute(string commandText, params object[] parameters)
{
return this._database.Execute(commandText, parameters);
}
[return: Dynamic(new bool[] { false, true })]
public IEnumerable<object> Query(string commandText, params object[] parameters)
{
return this._database.Query(commandText, parameters);
}
[return: Dynamic]
public object QuerySingle(string commandText, params object[] parameters)
{
return this._database.QuerySingle(commandText, parameters);
}
[return: Dynamic]
public object QueryValue(string commandText, params object[] parameters)
{
return this._database.QueryValue(commandText, parameters);
}
}
}
你要從哪裏複製這個源*,完全是?它在我看來就像你使用的是舊的來源 – 2013-05-14 09:54:47
@Marc Gravell我用.net反射器來反編譯它... – 2013-05-14 09:56:26
啊,對;那麼**不是源代碼**。反射器經常會導致事情「錯誤」,因爲它不會顯示源代碼**。或者,通過向您展示真正存在的內容,反射器可以讓事情「正確」。但是:這可能與您編寫代碼的內容不同。 – 2013-05-14 10:00:41