Visual Studio 2017、ReSharper 2017、C# 项目
我试图通过使用select
属性继承方法参数的文档,但它似乎没有按预期工作。
根据这篇文章(http://tunnelvisionlabs.github.io/SHFB/docs-master/SandcastleBuilder/html/79897974-ffc9-4b84-91a5-e50c66a0221d.htm)文档可以使用select
属性进行过滤,示例之一显示它的使用方式如下:
/// <example>
/// <inheritdoc cref="MethodWithTwoExamples"
/// select="span[@id='Example 2']" />
/// </example>
Run Code Online (Sandbox Code Playgroud)
因此,以类似的方式,我尝试以这种方式过滤文档:
/// <param name="generateStream"><inheritdoc cref="MyClass.MyMethod" select="param[@name='generateStream']"/></param>
Run Code Online (Sandbox Code Playgroud)
但问题是 Visul Studio Intellisense 不显示该特定参数的文档,而是显示我试图从中继承文档的方法的第一个参数的文档。
所以我的问题是:是否可以将文档过滤到方法的特定参数?
首先,我知道1. 是否可以从我的AppDomain导出DLL定义? 2. 是否可以将动态组件保存到磁盘? 3. 如何从内存转储中提取DLL文件?
但这些似乎都没有回答我的问题.
请考虑以下情形:C#应用程序从内存流加载DLL(因此DLL不直接向用户公开).是否有一个工具明确允许以特殊形式将特定DLL从内存转储或导出到磁盘?
注意:我希望有人向我展示从C#应用程序的内存转储中提取完整DLL的完整分步过程.
请考虑以下方法示例:
public void MyMethod (string par1, bool par2 = "true", string par3="")
{
}
Run Code Online (Sandbox Code Playgroud)
现在让我们说我调用MyMethod并将par3的值设置为"IamString".
如果不将par2的值设置为true或false,我怎么能这样做?
我基本上想要将par2值保留为默认值.
我问这个是因为在Flash的ActionScript中可以通过使用关键字default来做到这一点,所以我可以调用MyMethod("somestring",默认,"IamString"),par2将被解释为true,这是它的默认值.我想知道C#是否也有可能.
我的库中有两个MovieClip符号,我希望它们共享同一个类,但Flash不允许我将同一个类分配给任何两个不同的MC符号,所以我创建了两个伪类,扩展了我希望的类最初分享.
因此,由2个不同类定义的两个MC符号扩展了不同的类允许我共享相同的代码段.
我的问题:在两个或更多不同的图书馆符号之间共享课程是否更好?
有没有办法去除VS 2022 状态栏中的按钮?我能找到的所有解决方案都是针对 VS 2022 之前的版本。
我不使用任何类型的源代码控制,并且该按钮在状态栏中停留在视觉上令人不愉快/烦人,尤其是当它位于有用的信息旁边时。
ide customization ide-customization visual-studio visual-studio-2022
我有一个非静态类ImplementHeaderButtons
,它包含一个名为的非静态公共方法Implement
.类和方法的名称并不重要,重要的是它们不是静态的,所以它们需要实例化才能被使用,对吧?
所以我曾经这样做过:
var implementHeaderButtons = new ImplementHeaderButtons();
implementHeaderButtons.Implement(this, headerButtons);
Run Code Online (Sandbox Code Playgroud)
但后来我决定玩一下它(实际上我正在寻找一种方法使它成为一个单行)我得出结论,以下代码也可以正常工作:
new ImplementHeaderButtons().Implement(this, headerButtons);
Run Code Online (Sandbox Code Playgroud)
现在,我不需要一个变量来保存实例,但我的问题是:为什么我可以动态创建一个类的新实例并调用它的方法而不需要存储实例的变量?
如果它没有按预期工作,我不会感到惊讶,但确实如此.
我在ActionScript中工作了很多,我很高兴看到它与C#非常相似,但有一点是我缺少的,那就是"动态引用".
例如,可以使用数组运算符[]完成动态引用.因此,您也可以通过some_thing.something_else
以下两种方式访问该属性:
some_thing["something_else"]
// or
some_thing[some_var] // where some_var is a variable holding a string
// e.g.: some_var = "something_else";
Run Code Online (Sandbox Code Playgroud)
换句话说,数组语法等同于指定属性本身.
动态引用对象的另一个选项是使用eval()全局函数.
所以,我的问题是:是否可以以类似于ActionScript的方式引用C#中的属性?
请考虑以下代码:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
MessageBox.Show("MyMessage");
}
Run Code Online (Sandbox Code Playgroud)
如果我在加载WPF窗口后尝试显示一个消息框,当我运行应用程序时,WPF窗口显示为透明背景(只有非客户区域可见)并且需要3-5秒直到出现消息框.仅在消息框关闭后,WPF窗口才会恢复正常.
这是正常的吗?有没有人经历过这个?
编辑:我添加了窗口的截图:
考虑到WPF控件,我如何知道复选框的值是否已更改(切换)?
我知道有共同的Checked
,Unchecked
,Clicked
事件,但如何当值的变化,不管它是如何改变的事件?
我查看了事件,但没有找到任何东西,但也许我错过了显而易见的事情(过去曾多次发生).
所以我使用WPFShell将chrome应用于自定义窗口.我从这篇文章中了解到,为了使用它,我必须引用Microsoft.Windows.Shell库并使用这个XAML代码:
<shell:WindowChrome.WindowChrome>
<shell:WindowChrome
ResizeBorderThickness="6"
CaptionHeight="43"
CornerRadius="25,25,10,10"
GlassFrameThickness="0">
</shell:WindowChrome>
</shell:WindowChrome.WindowChrome>
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何使用C#代码而不是XAML启用chrome?(即如何在代码隐藏中应用chrome?)
c# ×8
wpf ×3
class ×2
checkbox ×1
dll ×1
dump ×1
dynamic ×1
flash-cs5 ×1
flash-ide ×1
ide ×1
inheritdoc ×1
instance ×1
intellisense ×1
messagebox ×1
properties ×1
resharper ×1
toggle ×1
variables ×1
window ×1
xaml ×1