小编Kir*_*kov的帖子

动态拦截.NET中的调用

我很想知道.NET是否支持在运行时对方法调用(或属性调用)进行任何形式的动态拦截.也就是说,您是否可以在没有静态编译信息(如接口(沿着CORBA DII(链接文本)或COM的IDispatch的行)的情况下拦截对象的调用.

如果没有,C#4.0中新的"动态类型对象"功能是否会在这方面有所帮助.

.net c# reflection dynamic

8
推荐指数
1
解决办法
6336
查看次数

如何提供后备程序集而不是无法加载的程序集?

在运行时,如果引用的程序集无法加载,例如"强名称验证失败"(因为它是经过测试签名的),是否有办法从另一个实际签名的路径提供替换程序集?

我尝试订阅AppDomain.CurrentDomain.AssemblyResolve,但它没有被触发,因为"坏"程序集技术上存在,它只是无法加载.

在无法加载程序集时,是否存在提供回退程序集的通用方法?

.net c# reflection assembly.load assembly-resolution

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

罗斯林:如何获得未解决的类型

我正在使用Roslyn的2012年9月CTP.

在ac#代码文档中获取未解析类型的最优雅方法是什么?例如.Type Guid需要System命名空间.目前我有这样的事情:

            var semanticModel = (SemanticModel)document.GetSemanticModel();
            var tree = (SyntaxTree)document.GetSyntaxTree();

            //get unresolved types
            var unresolvedTypes = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>()
                .Where(x => semanticModel.GetSymbolInfo(x).Symbol == null);
Run Code Online (Sandbox Code Playgroud)

使用IdentifierNameSyntax和GetSymbolInfo是否正确?

另外GetSymbolInfoGetTypeInfo有什么区别,它们看起来和我非常相似.

roslyn

4
推荐指数
1
解决办法
1476
查看次数