System.Reflection.Assembly 不包含 'GetExecutingAssembly' 的定义
System.Reflection.Assembly does not contain a definition for 'GetExecutingAssembly'
我正在尝试使用 Xamarin.Forms(便携式 Class 库)创建移动应用程序,在以下代码中,我无法使用 `GetExecutingAssembly:
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' does not contain a definition for
'GetExecutingAssembly' and no extension method 'GetExecutingAssembly'
accepting a first argument of type 'System.Reflection.Assembly' could
be found (are you missing a using directive or an assembly
reference?) C:...
我该怎么办?
var assembly = Assembly.GetAssembly(typeof(BookPage));
了解 Portable Class Library / PLC 作为平台配置文件不存在是至关重要的。 运行 应用程序在编译 PLC 项目时不会受到与编译器相同的限制。
这是突破障碍的一种方法:
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
}
此方法只会为您提供沙盒程序集环境中的可访问程序集。但它为您提供了一个关于如何访问您不应该访问的 "stuff" 的起点。
确保您没有在某处创建自己的程序集class。
如果存在,编译器将在其中查找 GetExecutingAssembly()
方法。
我不小心做了这件事,这就是我来这里的原因。
您可以通过重命名程序集 class 或添加通常由于 using 语句而被遗漏的特定位置来修复它。
System.Reflection.Assembly.GetExecutingAssembly()
要么
System.Reflection.Assembly.GetAssembly(type)
我正在尝试使用 Xamarin.Forms(便携式 Class 库)创建移动应用程序,在以下代码中,我无法使用 `GetExecutingAssembly:
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' does not contain a definition for 'GetExecutingAssembly' and no extension method 'GetExecutingAssembly' accepting a first argument of type 'System.Reflection.Assembly' could be found (are you missing a using directive or an assembly reference?) C:...
我该怎么办?
var assembly = Assembly.GetAssembly(typeof(BookPage));
了解 Portable Class Library / PLC 作为平台配置文件不存在是至关重要的。 运行 应用程序在编译 PLC 项目时不会受到与编译器相同的限制。
这是突破障碍的一种方法:
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
}
此方法只会为您提供沙盒程序集环境中的可访问程序集。但它为您提供了一个关于如何访问您不应该访问的 "stuff" 的起点。
确保您没有在某处创建自己的程序集class。
如果存在,编译器将在其中查找 GetExecutingAssembly()
方法。
我不小心做了这件事,这就是我来这里的原因。
您可以通过重命名程序集 class 或添加通常由于 using 语句而被遗漏的特定位置来修复它。
System.Reflection.Assembly.GetExecutingAssembly()
要么
System.Reflection.Assembly.GetAssembly(type)