您好我有一个奇怪的问题.
我在这样的剃刀页面中使用了空传播功能
@(Model.ligneDossierLie?.dossier_id)
Run Code Online (Sandbox Code Playgroud)
我的项目基于4.6.1 Framework,我使用最后一个codeDom编译器1.0.4和编译器2.1.0
在剃须刀视图中,我有一条错误消息,说我不能在C#5中使用C#6功能.
但我的项目是使用c#7 ....
我回到c#6,它工作正常.
在这种情况下,有人知道如何使用c#7吗?
谢谢.
Web.config文件
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
</compilers>
</system.codedom>
compilerOptions="/langversion:6
Run Code Online (Sandbox Code Playgroud)
设置为7并且我回滚到6.之后我没有出现错误,我的观点正在编译并且正常工作
您好我使用.Any()扩展方法遇到了表达式树的问题.
这是我的代码:
IQueryable<Book> querableBooks = Books.Values.AsQueryable<Book>();
ParameterExpression pe = Expression.Parameter(typeof(Book), "book");
MemberExpression props = Expression.Property(pe, "properties");
ParameterExpression propList = Expression.Parameter(typeof(List<BookProperty>), "properties");
var _test = Expression.Lambda<Func<List<BookProperty>, bool>>(operation, new ParameterExpression[] { propList });
var _Any = Expression.Call(typeof(Enumerable), "any", new Type[] { typeof(BookProperty) }, new Expression[] { propList });
Expression Lamba = Expression.Lambda(_Any, _props);
Run Code Online (Sandbox Code Playgroud)
_test返回{properties =>((bookProperty.type.key =="lingerie")和(bookProperty.value =="1"))}
_Any返回{properties.Any()}
Lambda返回{book.properties => properties.Any()}
Book类是这样的:
public class Book : IBook
{
public int id { get; set; }
//Removed for clarity
public List<BookProperty> properties { …Run Code Online (Sandbox Code Playgroud)