Get System.Reflection.Assembly.GetExecutingAssembly().获取名称()
本文关键字:获取 GetExecutingAssembly System Reflection Assembly Get | 更新日期: 2023-09-27 18:36:20
有机会获得:
System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
来自 XAML 代码?
<Window x:Class="TestWpf.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title=" **Here** " Height="700" Width="660"
Name="myWindow" xmlns:my="clr-namespace:TestWpf">
</Window>
谢谢!
您可以使用 MarkupExtension 来实现此目的:
public class Version : MarkupExtension
{
public override object ProvideValue(IServiceProvider serviceProvider)
{
return System.Reflection.Assembly
.GetExecutingAssembly().GetName().Version.ToString();
}
}
并以这种方式使用它:
<Window x:Class="TestWpf.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="{my:Version}"
Height="700" Width="660"
Name="myWindow"
xmlns:my="clr-namespace:TestWpf">
</Window>
在Window
的代码隐藏中创建一个返回该字符串的属性:
public string Version
{
get
{
return System.Reflection.Assembly
.GetExecutingAssembly().GetName().Version.ToString();
}
}
然后从 XAML 代码中引用该代码:
<Window x:Class="TestWpf.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="{Binding Version, RelativeSource={RelativeSource Self}}"
Height="700" Width="660"
Name="myWindow"
xmlns:my="clr-namespace:TestWpf">
</Window>
据我所知,如果程序当前直接在 XAML 代码中运行,则无法检索版本。您将始终必须使用某种后台代码。这可以是代码隐藏以及视图模型,MarkupExtension或其他类型的DataContext。