.NET Compact Framework引入了可重定向的程序集引用,现在用于支持可移植类库.
基本上,编译器会发出以下MSIL:
.assembly extern retargetable mscorlib
{
.publickeytoken = (7C EC 85 D7 BE A7 79 8E )
.ver 2:0:5:0
}
Run Code Online (Sandbox Code Playgroud)
C#编译器如何理解它必须发出一个可重定向的引用,以及如何强制C#编译器甚至在可移植类库之外发出这样的引用?
是否可以在可移植类库项目中引用System.Data.Linq?
注意: 我只是想在WP8和WinStore8应用程序之间共享代码[DataContext]
我创建了一个针对.NET Framework 4和Silverlight 5的PCL项目(我使用Visual Studio 2010的扩展,而不是Visual Studio 2012的可移植项目模板,如果这很重要).我试图使用System.Linq.Enumerable.Reverse<TSource>()扩展方法反转字符串,但它不起作用,因为编译器认为System.String没有实现IEnumerable<char>.
我正在为桌面,Windows 8商店和Windows手机同时构建新的应用程序.所以我创建了可移植类库,以便在所有平台上具有通用功能.我的问题是,当我尝试在PCL中重用我的代码时,我无法访问库中的一些方法和属性.根据MSDN,支持这些方法,但我现在知道为什么我无法访问它们.
var property = memberExpression.Member as PropertyInfo;
if (property == null)
{
}
var getMethod = property.GetGetMethod(true);
if (getMethod.IsStatic)
{}
Run Code Online (Sandbox Code Playgroud)
这是无法编译的代码片段.GetGetMethod和IsStatic在Visual Studio编辑器中是红色的.我不知道为什么会发生这种情况以及如何访问这些属性.
所以,如果那里的任何人做过类似的事情,请帮我编译这段代码.
我创建了一个可在我的Monodroid项目中使用的可移植类库.但问题是我需要System.IO库但不幸的是我无法添加它.
我甚至尝试通过"添加引用"选项添加它,但它是徒劳的.
为什么会这样?我该怎么办?
我正在处理的程序有一个适当命名为"Error"的日志记录功能,用于通知错误而不会导致程序崩溃,但是,我想包含一个堆栈跟踪,以便更容易调试这些非致命错误.我的第一直觉是使用System.Diagnostics.StackTrace,遗憾的是PCL没有.
然后,我试图抛出并立即捕获异常.
try { throw new Exception(); }
catch (Exception ex) { return ex.StackTrace; }
Run Code Online (Sandbox Code Playgroud)
不幸的是,这只提供了调用堆栈的顶层:因为它没有解开堆栈,所以它不提供任何有用的信息.所以,我的问题是:如何在ac#PCL函数中获得堆栈跟踪而不会抛出错误并将其捕获到堆栈的底部?我更愿意将代码完全保留在PCL中,并避免使用抽象和平台特定的实现代码来实现这么简单的事情.
编辑为对注释的响应:`throw new Exception(ex)仅向堆栈跟踪添加另一个层,因此它在堆栈跟踪功能中有两行但仍无法检索完整跟踪.
我想将SharpZipLib.Portable库添加到我的Xamarin.FormsPCL项目中.我的目标是Android和iOS.该文档提到您必须实现一个VirtualFileSystem才能使用该库,但我不知道该怎么做,我无法找到有关该主题的更多信息.
有没有人使用这个库可以指导我使用它所需的步骤?
我正在使用Xamarin.Forms在visual studio上工作,我得到以下错误:
加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集'Xamarin.Android.Support.v4,Version = 1.0.0.0,Culture = neutral,PublicKeyToken ='.也许它在Mono for Android配置文件中不存在?文件名:Xamarin.Android.Tuner.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference,ReaderParameters参数)的Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection`1程序集,AssemblyDefinition程序集,布局topLevel)在Xamarin.Android.Tasks.ResolveAssemblies.Execute()SportBook.Droid
我该怎么办?
c# visual-studio portable-class-library xamarin xamarin.forms
我正在制作一个UWP应用程序,将文件上传到Facebook,我使用自定义HttpContent上传4k块文件,以最大限度地减少大文件的内存使用量(> 100mb)并报告进度.
我的自定义HttpContent UploadWithProgressHttpContent:
class UploadWithProgressHttpContent : HttpContent
{
private readonly IProgress<OperationProgress> _progress;
private readonly OperationProgress _data;
private readonly Stream _file;
private readonly int _bufferSize;
private readonly CancellationToken _token;
public UploadWithProgressHttpContent(
IProgress<OperationProgress> progress,
OperationProgress data,
Stream file,
int bufferSize,
CancellationToken token)
{
_progress = progress;
_data = data;
_file = file;
_bufferSize = bufferSize;
_token = token;
}
protected override Task SerializeToStreamAsync(Stream stream, TransportContext context)
{
return CopyStreamWithProgress(_file, stream, _progress, _token, _data, _bufferSize);
}
public static async Task<Stream> CopyStreamWithProgress(
Stream …Run Code Online (Sandbox Code Playgroud) 所以我有一个带有列的xaml Grid,当内容不可见时我想隐藏或折叠列.
示例:我有这样的布局:
<Grid >
<Button Grid.Column="0" x:Name="FirstButton" Text="First button" />
<Button Grid.Column="1"x:Name="SecondButton" Text="Second button" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
当FirstButton不可见时,我想要这个结果
<Grid >
<Button Grid.Column="1"x:Name="SecondButton" Text="Second button" />
</Grid>
Run Code Online (Sandbox Code Playgroud) c# ×8
.net ×2
xamarin ×2
collapse ×1
debugging ×1
httpclient ×1
reflection ×1
sharpziplib ×1
uwp ×1
xaml ×1