c# - Do not use 'System.Runtime.CompilerServices.DynamicAttribute'. Use the 'dynamic' keyword instead -
i copy , paste source of webmatrix.webdata.idatabase vstudio mark dynamic words , said
do not use 'system.runtime.compilerservices.dynamicattribute'. use 'dynamic' keyword instead.
why error when original .net framework used it?
the source code here:
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); } } and same error here:
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); } } }
that maps to:
ienumerable<dynamic> query(string commandtext, params object[] parameters); dynamic querysingle(string commandtext, params object[] args); dynamic queryvalue(string commandtext, params object[] parameters); the reason can think of use alternative syntax compiling on down-level compiler doesn't know dynamic keyword. however, [dynamicattribute] has existed since .net 4.0, includes compiler dynamic support. thoughts:
- is perhaps using asp.net compiler, might not configured use vlatest
- does perhaps relate development against ctp builds, when
dynamicincomplete
if @ current source, uses dynamic, supporting hypothesis [dynamic] usage purely transitional.
Comments
Post a Comment