C# System.Reflection.Assembly不包含';GetExecutiveGassembly';

C# System.Reflection.Assembly不包含';GetExecutiveGassembly';,c#,xamarin,xamarin.forms,portable-class-library,C#,Xamarin,Xamarin.forms,Portable Class Library,我正在尝试使用Xamarin.Forms(可移植类库)创建移动应用程序,在以下代码中,我无法使用`GetExecutionGassembly: using System; using Xamarin.Forms; using Xamarin.Forms.Xaml; using System.Reflection; using System.IO; using PCLStorage; namespace MnakbAlshaba

我正在尝试使用Xamarin.Forms(可移植类库)创建移动应用程序,在以下代码中,我无法使用`GetExecutionGassembly:

    using System;
    using Xamarin.Forms;
    using Xamarin.Forms.Xaml;
    using System.Reflection;
    using System.IO;
    using PCLStorage;    

    namespace MnakbAlshaba
    {
        public class BookPage : ContentPage 
        {

            //      
            private void SetBookPagesRows()
            {
                var assembly = typeof(BookPage).GetTypeInfo().Assembly.GetExecutingAssembly();//error
                var resourceName = "MyCompany.MyProduct.MyFile.txt";

                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                using (StreamReader reader = new StreamReader(stream))
                {
                    string result = reader.ReadToEnd();
                }
            }
        }
    }
我得到以下错误:


“System.Reflection.Assembly”不包含的定义 “GetExecutionGassembly”和无扩展方法“GetExecutionGassembly” 无法接受类型为“System.Reflection.Assembly”的第一个参数 找不到(是否缺少using指令或程序集 参考?)C:


我该怎么办?

理解作为平台配置文件的可移植类库/PLC并不存在,这一点至关重要。在编译PLC项目时,正在运行的应用程序不会受到与编译器相同的限制

var assembly = Assembly.GetAssembly(typeof(BookPage));
这里有一个突破障碍的方法:

using System;
...
try {
    var getExecutingAssembly = typeof(Assembly).GetRuntimeMethods()
                                .Where(m => m.Name.Equals("GetExecutingAssembly"))
                                .FirstOrDefault();
    var assemblies = getExecutingAssembly.Invoke(null, null);
} catch(Exception exc){
   ... try something else
} finally{
   ... time for some alternative 
}

这种方法只会在沙盒程序集环境中生成可访问的程序集。但它为您提供了一个如何访问不应该访问的“东西”的起点。

确保您没有在某个地方创建自己的汇编类。
如果它存在,编译器将在其中查找
GetExecutingAssembly()
方法

我不小心做了这件事,这就是我来这里的原因

您可以通过重命名程序集类或添加由于using语句而通常被忽略的特定位置来修复它

System.Reflection.Assembly.getExecutionGassembly()


System.Reflection.Assembly.GetAssembly(type)

即使我在静态模式下调用了@2kay,也可能重复相同的错误。@Gusman..我应该做什么:(我厌倦了从xamarin.forms中读取文件:(你读过帖子了吗?@Gusman我正在阅读谢谢:)“System.Reflection.Assembly”不包含“GetAssembly”的定义我遇到了相同的问题