资源的c# Uri生成器

本文关键字:Uri 资源 | 更新日期: 2023-09-27 17:51:12

我想写一个属性,它将构造我的资源URI。

我在MyProject.Common汇编中有我的基类,它的实现像

class abstract BaseItem
{
    public abstract string Path { get; }
    public Uri Path
    {
        return new Uri(string.Format("/{0};component{1}", Assembly.GetExecutingAssembly().FullName, Path ), UriKind.Relative);
    }

和我的实现是在不同的程序集。

问题:Assembly.GetExecutingAssembly().FullName返回MyProject.Common汇编,而不是我的实现汇编

问题:如何存档?

资源的c# Uri生成器

如果您从BaseItem的实际派生类型获得程序集,则应该可以工作:

public abstract class BaseItem
{
    public abstract string Path { get; }
    public Uri Uri
    {
        get
        {
            return new Uri(string.Format("pack://application:,,,/{0};component/{1}",
                this.GetType().Assembly.FullName, Path));
        }
    }
}