小编Aki*_*kim的帖子

Roslyn可以编译await关键字吗?

在使用最新版本的我发现它dynamic在编译和脚本执行时不支持关键字,即你将得到一个编译错误error CS8000: This language feature ('dynamic') is not yet implemented in Roslyn.这是一个简短的代码片段:

var engine = new ScriptEngine();
var script = @"dynamic someVariable = 0;";
// you an error CS8000: This language feature ('dynamic') is not yet implemented in Roslyn
engine.CreateSession().Execute(script);
Run Code Online (Sandbox Code Playgroud)

使用await关键字时......

相反,await在编译或脚本中使用关键字时,我通常会遇到一些随机编译错误,如下所示:

  • error CS1001: Identifier expected
  • error CS1003: Syntax error, ',' expected
  • error CS0246: The type or namespace name 'await' could not be found (are you missing a using directive …

c# async-await c#-5.0 roslyn

8
推荐指数
2
解决办法
1496
查看次数

使用Roslyn.Services.Workspace进行单元测试会导致在x86目标下工作时出现SecurityException

我正在研究我的项目的常量集,我想使用在源代码级别验证它们中的一些.要做到这一点,我加载使用下面的片段到整个解决方案与应用程序域IsFullyTrusted == trueIsHomogenous == true,即远程启动x86平台的目标:

// load workspace, i.e. solution from Visual Studio
var workspace = Roslyn.Services.Workspace.LoadSolution(solutionFile);
Run Code Online (Sandbox Code Playgroud)

使用带有Roslyn的x86平台测试NCrunch和NUnit的跑步者

但是当使用 1.45或 2.6.2 nunit-console-x86.exe以及平台配置x86作为测试运行时,我会不断得到以下内容System.Security.SecurityException:

System.Security.SecurityException : Type System.Runtime.Remoting.ObjRef and the types derived from it (such as System.Runtime.Remoting.ObjRef) are not permitted to be deserialized at this security level.

Server stack trace: 
   at System.Runtime.Serialization.FormatterServices.CheckTypeSecurity(Type t, TypeFilterLevel securityLevel)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.CheckSecurity(ParseRecord pr)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObject(ParseRecord pr)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord pr)
   at …
Run Code Online (Sandbox Code Playgroud)

nunit appdomain deserialization ncrunch roslyn

7
推荐指数
1
解决办法
1101
查看次数

AspectPriority的用法

我正在使用PostSharp 2.1.5.1并在今天发出警告:

在将来的版本中,将从简化版禁用Aspect依赖项(在"MyNamespace.MyAspect.MyVerificationAttribute"上定义).请改用AspectPriority属性.

在我看来,以下行引起了警告:

[AspectRoleDependency(AspectDependencyAction.Order, AspectDependencyPosition.After, StandardRoles.Tracing)]
Run Code Online (Sandbox Code Playgroud)

有人能指出我如何使用的正确例子AspectPriority吗?以下示例是最新的吗?

谢谢.

.net c# aop postsharp

5
推荐指数
1
解决办法
1533
查看次数

如何使用CodeDOM表示null合并运算符?

比方说,我有以下简化类型:

public class Model
{
    public decimal? Result { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如何使用CodeDOM表示空合并运算符来生成C#代码,它有可能吗?现在我正在使用以下解决方法:

new CodePropertyReferenceExpression(
    new CodePropertyReferenceExpression(modelArgument, "Result"),
        "Value"))
Run Code Online (Sandbox Code Playgroud)

这等于model.Result.Value,但不是model.Result ?? 0M

更好的解决方法

CodeExpressionequalent到model.Result.GetValueOrDefault(0M)适合于空值类型

new CodeMethodInvokeExpression(
                        new CodeMethodReferenceExpression(
                            new CodePropertyReferenceExpression(modelArgument, "Result"),
                            "GetValueOrDefault"),
                            new [] { new CodePrimitiveExpression(0m) })),
Run Code Online (Sandbox Code Playgroud)

c# codedom null-coalescing-operator

5
推荐指数
1
解决办法
851
查看次数

IoC的存储库模式 - 如何正确使用?

我是一个独立的开发人员,Pluralsight是我帮助我理解Repository和IoC之类的东西,我正在学习.但是我发现这种模式很难使用.

所以我使用Unity IoC,然后ModelContainer上课;

public static class ModelContainer
{
    private static IUnityContainer instance;

    static ModelContainer()
    {
        instance = new UnityContainer();
    }

    public static IUnityContainer Instance
    {
        get
        {
            instance.RegisterType<ISCD_CallDiaryRepository, SCD_CallDiaryRepository>(new HierarchicalLifetimeManager());
            instance.RegisterType<ICompanyRepository, CompanyRepository>(new HierarchicalLifetimeManager());
            instance.RegisterType<ISubcontractorRepository, SubcontractorRepository>(new HierarchicalLifetimeManager());
            instance.RegisterType<ITradeRepository, TradeRepository>(new HierarchicalLifetimeManager());
            instance.RegisterType<IEmployeeRepository, EmployeeRepository>(new HierarchicalLifetimeManager());
            instance.RegisterType<ISubcontractorTradeRepository, SubcontractorTradeRepository>(new HierarchicalLifetimeManager());
            instance.RegisterType<ICountyRepository, CountyRepository>(new HierarchicalLifetimeManager());
            instance.RegisterType<IAddressLineRepository, AddressLineRepository>(new HierarchicalLifetimeManager());
            return instance;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

允许我在我的控制器的构造函数中实例化存储库类;

public SubcontractorController(
        ISubcontractorRepository subcontractorRepository,
        ISubcontractorTradeRepository subcontractorTradeRepository, 
        ICompanyRepository companyRepository, 
        ISCD_CallDiaryRepository scdCallDiaryRepository,
        ITradeRepository tradeRepository,
        IAddressLineRepository addressLineRepository)
    {
        this.SubcontractorRepository = subcontractorRepository;
        this.SubcontractorTradeRepository = subcontractorTradeRepository; …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc repository ioc-container unity-container

3
推荐指数
2
解决办法
3447
查看次数