【问题标题】:Xamarin -> System.Reflection.Assembly.GetExecutingAssembly doesn't workXamarin -> System.Reflection.Assembly.GetExecutingAssembly 不起作用
【发布时间】:2017-05-20 00:52:17
【问题描述】:

我尝试在我的 xamarin.forms 项目中包含一个 .csv 文件。问题是,当我将文件用作嵌入式资源时,我认为它只能同时用于所有平台。我的程序集只有三种方法:

Equals()
Load()
ReferenceEquals()

但我需要Assembly.GetExecutingAssembly() 才能让我的代码正常工作。

你知道如何解决这个问题吗?或者也许是另一种选择? 顺便说一句:我使用 Visual Studio 2013 Ultimate 和 Xamarin.Android/iOS 的试用许可证

编辑:我想它必须做某事。与 Xamarin.Forms。一个普通的桌面应用程序有 Assembly.GetExecutingAssembly();它工作正常,但我需要在我的应用程序中使用它:(

编辑 2:我现在试试这个:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/files/#Loading_Files_Embedded_as_Resources

【问题讨论】:

  • 为什么你特别需要Assembly.GetExecutingAssembly()?还有各种其他获取程序集的方法。您知道该程序集中的类型吗?如果是这样,typeof(Foo).Assembly 可能是最简单的方法。
  • «不起作用»是什么意思?它会扔吗?它返回null吗?它会返回另一个程序集吗?
  • 它说,“GetExecutingAssembly()”没有定义,就像我说的那样,我的程序集类只有问题中提到的三种方法。不,我并不特别需要它,这只是我找到解决方案的唯一方法。
  • 这是XY Problem 的一个实例吗?
  • 你真正想要完成什么?

标签: c# .net reflection xamarin


【解决方案1】:

这样做:

var assembly = typeof(App).GetTypeInfo().Assembly;

作为“应用程序”是您的应用程序文件的类型。

通过这种方式,我已经完成了你想要的(读取 csv 文件)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-08
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 2015-11-04
    相关资源
    最近更新 更多