我有一个UserControl并想在设计时隐藏调整大小句柄,就像TextBoxControl一样,它只有两个句柄(左右两个)...文本框的高度是固定的,除非你说它是多行的.在这种情况下,文本框显示所有九个调整大小句柄.
我想知道 .Net-3.5 是否带有内置的List<string>or string[] TypeConverter,UITypeEditor以便我可以从属性网格编辑此类属性。
为什么我的控制器在await声明后被处理?
public async Task<ViewResult> MyAction()
{
await Task.Yield();
// controller disposed at this point... why?
return this.View();
}
Run Code Online (Sandbox Code Playgroud)
我的控制器通过重写Dispose方法来使用它所处理的资源......但是使用async/await似乎打破了这一点,因为它在执行await语句后立即处理控制器...如何以异步方式配置资源/ await是否受支持?
编辑: dispose方法的callstack中的最后一个方法:
MyWebRole.dll!MyWebRole.Code.MyController.Dispose(bool disposing = true) Line 102 C#
System.Web.Mvc.dll!System.Web.Mvc.Controller.Dispose() + 0x25 bytes
System.Web.Mvc.dll!System.Web.Mvc.DefaultControllerFactory.ReleaseController(System.Web.Mvc.IController controller = {MyWebRole.Areas.App.Controllers.LongPollingController}) + 0x3e bytes
System.Web.Mvc.dll!System.Web.Mvc.MvcHandler.BeginProcessRequest.AnonymousMethod__5() + 0x70 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.MakeVoidDelegate.AnonymousMethod__0() + 0x2d bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.BeginSynchronous<System.Web.Mvc.Async.AsyncVoid>.AnonymousMethod__7(System.IAsyncResult _ = {System.Web.Mvc.Async.SimpleAsyncResult}) + 0x2b bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<System.Web.Mvc.Async.AsyncVoid>.End() + 0x99 bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.End<System.Web.Mvc.Async.AsyncVoid>(System.IAsyncResult asyncResult = {System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<System.Web.Mvc.Async.AsyncVoid>}, object tag = {object}) + 0x3c bytes
System.Web.Mvc.dll!System.Web.Mvc.Async.AsyncResultWrapper.End(System.IAsyncResult asyncResult = {System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult<System.Web.Mvc.Async.AsyncVoid>}, object tag …Run Code Online (Sandbox Code Playgroud) 我正在使用此代码将blob从一个帐户复制到另一个帐户......但它会引发异常.
var srcAccount = CloudStorageAccount.Parse("connection string 1");
var dstAccount = CloudStorageAccount.Parse("connection string 2");
var srcBlobClient = srcAccount.CreateCloudBlobClient();
var dstBlobClient = dstAccount.CreateCloudBlobClient();
foreach (var srcCloudBlobContainer in srcBlobClient.ListContainers())
{
var dstCloudBlobContainer = dstBlobClient
.GetContainerReference(srcCloudBlobContainer.Name);
dstCloudBlobContainer.CreateIfNotExists();
foreach (var srcBlob in srcCloudBlobContainer.ListBlobs())
{
if (srcBlob.GetType() == typeof(CloudBlockBlob))
{
var srcBlockBlock = (CloudBlockBlob)srcBlob;
var dstBlockBlock = dstCloudBlobContainer
.GetBlockBlobReference(srcBlockBlock.Name);
// throws exception StorageException:
// The remote server returned an error: (404) Not Found.
dstBlockBlock.StartCopyFromBlob(srcBlockBlock.Uri);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Microsoft声明支持跨帐户副本,但我无法让它工作.
我究竟做错了什么?