该Microsoft.CodeAnalysis.Editing.ImportAdderService.AddImportsAsync方法仅访问非琐事语法节点,因此不会为它们添加命名空间导入.这导致了结果,当使用时,xml文档注释中的cref不能简化为它们的短名称Microsoft.CodeAnalysis.Simplification.Simplifier.
我遇到的最大问题是简化会导致结果不一致.假设您有多个cref,并且对于一个cref,您有一个名称空间导入(由于另一种类型引入,实际上在非琐事节点中使用).然后,这一个cref缩短了,而其他的则没有.
为了澄清.
申请之前ImportAdderService和Simplifier:
namespace Namespace
{
/// <summary>
/// <see cref=""System.Collections.IEnumerable"" />
/// <see cref=""System.Collections.Generic.IEnumerable{T}"" />.
/// </summary>
internal class MyDeclaration
{
System.Collections.IEnumerable Field;
}
}
Run Code Online (Sandbox Code Playgroud)
申请后ImportAdderService和Simplifier:
using System.Collections;
namespace Namespace
{
/// <summary>
/// <see cref=""IEnumerable"" />
/// <see cref=""System.Collections.Generic.IEnumerable{T}"" />.
/// </summary>
internal class MyDeclaration
{
IEnumerable Field;
}
}
Run Code Online (Sandbox Code Playgroud)
题
我可以解决这个问题吗?我们肯定希望为cref标签中引用的所有类型添加使用.
或者甚至是设计?
我想这确实是一个缺失的功能,告诉ImportAdderService访问trivia语法节点.
如何将自定义命令添加到键盘对话框(工具 - >选项 - >键盘)以通过快捷方式触发它们?不幸的是,我在网上找不到任何资源.
我浏览了这篇博文,但它略有不同,因为我必须创建一个菜单条目.我只想在键盘对话框中显示命令.就像它与宏一起工作一样.
我们试图找出如何使用Roslyn生成代码.我不是在谈论类似的东西CSharpSyntaxTree.ParseText会占用一些字符串并将它们转换成AST.相反,我想以某种方式构建我的模型(伪代码):
file为编译单元MyClass到fileDoSomething来MyClassDoSomething以类似的方式设置身体System.Linq.Expressions我们最近发现Microsoft.CodeAnalysis.CSharp.SyntaxFactory,它似乎很有希望.但是,显然我们必须自己添加琐事.
在构建一个树SyntaxFactory.CompilationUnit()并且来回添加一些成员之后,输出ToFullString()只是一堆文本,既不可读也不可编译(例如,缺少大括号).从模型生成文本时,我们会错过什么吗?
编辑:
使用工作空间时,可以设置影响空白行为的选项:
public string Generate (CompilationNode rootNode)
{
var cw = new CustomWorkspace();
cw.Options.WithChangedOption (CSharpFormattingOptions.IndentBraces, true);
var formattedCode = Formatter.Format (CreateFile(rootNode), cw);
return formattedCode.ToFullString();
}
Run Code Online (Sandbox Code Playgroud)
这已经产生了更好的结果.有人可以证实这是一个很好的解决方案,还是一个黑客?
还有一个问题.我们想要生成一个自动属性,当前正在使用SF.AccessorDeclaration但在转换为完整字符串时它会错过分号.
我正在使用itextsharp生成PDF,但我需要动态更改一些文本.我知道如果有任何AcroField可以改变,但我的PDF doen有任何一个.它只有一些纯文本,我需要改变其中的一些.
有谁知道怎么做?
我正在尝试使用以下规则验证名为phone_number的字段:
第一个数字应为3然后是另外9个数字,因此总共10个数字示例:3216549874
或者可以是7个数字1234567
这里我有我的代码:
if (!($("#" + val["htmlId"]).val().match(/^3\d{9}|\d{7}/)))
missing = true;
Run Code Online (Sandbox Code Playgroud)
为什么不工作:(当我把它放入在线正则表达式检查器显示良好.
AutoFixture中是否有任何方法fixture.Create<string>()可以产生相同的结果?即,我可以用种子初始化夹具吗?
更新
更确切地说,我正在寻找一个随机值生成器,它使用一些随机种子初始化,如果测试失败也会输出.因此,我可以为特定的测试运行取种子,并再次使用固定种子运行测试.种子应该适用于所有实例,无论其类型如何.我认为这是在测试中使用随机值的最有效方法,因为它具有巨大的覆盖范围,并且也是可重现的.
问题的措辞不一定是正义问题......
所以这应该没问题.客户端UI可以将数据传递给WCF主机.但我的问题是,我如何使这些数据有用?我在Windows服务/ WCF主机上运行了几个引擎但是WCF主机完全没有意识到任何后台引擎的存在. 我需要客户端的通信请求才能与这些引擎进行交互.
有没有人知道如何在WCF主机和运行线程之间促进通信的良好设计模式或方法?
有一个有一个属性的类:
public class BaseClass
{
public virtual string Property1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在我使用一些方法覆盖创建派生类型:
[Test]
public void name ()
{
var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly (new AssemblyName ("Test"), AssemblyBuilderAccess.RunAndSave);
var moduleBuilder = assemblyBuilder.DefineDynamicModule ("Test.dll");
var derivedBuilder = moduleBuilder.DefineType ("DerivedClass", TypeAttributes.Public, typeof (BaseClass));
const MethodAttributes methodAttributes = MethodAttributes.Private | MethodAttributes.Virtual | MethodAttributes.SpecialName | MethodAttributes.NewSlot;
var getterOverride = derivedBuilder.DefineMethod (
"get_Property1",
methodAttributes,
typeof (string),
Type.EmptyTypes);
var getterILGenerator = getterOverride.GetILGenerator();
getterILGenerator.Emit (OpCodes.Ldnull);
getterILGenerator.Emit (OpCodes.Ret);
derivedBuilder.DefineMethodOverride (getterOverride, typeof (BaseClass).GetMethod ("get_Property1"));
var setterOverride = derivedBuilder.DefineMethod …Run Code Online (Sandbox Code Playgroud) 假设我有一个方面实现IInstanceScopedAspect,我已将此方面应用于类型中的方法.如何在创建对象时初始化方面FormatterServices.GetUninitializedObject?构造函数没有被执行,因此NullReferenceException当我执行应用方面的方法时,我得到了一个.
是否有可用于初始化对象方面的PostSharp API?
有两个Xaml读者.其中一个包括在System.Xaml另一个包括在内System.Windows.Markup.他们之间有什么区别?
c# ×7
roslyn ×2
autofixture ×1
itextsharp ×1
javascript ×1
jquery ×1
markup ×1
postsharp ×1
silverlight ×1
unit-testing ×1
vsx ×1
wcf ×1
wpf ×1
xaml ×1