小编Thu*_*kwa的帖子

WPF:标准和类似于`SplitContainer`的东西?

SplitContainerWPF中的Windows窗体是否有标准和类似的东西?

我对网格有点失落,因为控件似乎不是在细胞内,而是在它们之上:s.

我做了一些谷歌搜索,但我不知道究竟在搜索领域写什么...

c# wpf

14
推荐指数
2
解决办法
2万
查看次数

无法在 .NET 中获取 DynamoDb TransactionCanceledException 取消原因

在我取消 Dynamodb 事务的情况下,我无法找到取消的原因,必须自己弄清楚。我得到一个没有任何原因的 TransactionCanceledException 类型的异常,内部异常是一个 HttpErrorResponseException 并且我没有运气读取内容流,因为它已经被处理了。

我在文档中看到过这个注释:

如果使用 Java,DynamoDB 会在 CancellationReasons 属性中列出取消原因。未为其他语言设置此属性。交易取消原因按请求项目的顺序排列,如果项目没有错误,它将有 NONE 代码和 Null 消息。

似乎没有关于如何在 .net 中处理此问题的任何信息。我希望有人遇到过这个问题并有解决办法。

.net c# amazon-dynamodb

6
推荐指数
0
解决办法
428
查看次数

在.net中正确关闭excel互操作应用程序的问题

我在.net中使用与Office excel的互操作时遇到问题.我已经尝试了很多东西来关闭我创建在我的程序中使用的excel应用程序,工作簿和工作表,但我总是注意到excel.exe仍在内存中.我甚至试过强迫垃圾收集器,请帮忙.

这是我用来实例化所有内容的代码:

Private mExcelApp As Microsoft.Office.Interop.Excel.ApplicationClass
Private mWorkBook As Microsoft.Office.Interop.Excel.Workbook
Private mWorkSheet As Microsoft.Office.Interop.Excel.Worksheet


   Public Sub Execute()

    mExcelApp = New Microsoft.Office.Interop.Excel.ApplicationClass
     If mFirstPass Then
         mWorkBook = mExcelApp.Workbooks.Add()
         mWorkSheet = CType(mWorkBook.ActiveSheet(), Microsoft.Office.Interop.Excel.Worksheet)
    Else
        mWorkBook = mExcelApp.Workbooks.Open(System.IO.Path.Combine(mFileLocation, mMTDefinition.Description & "_" & mMTDefinition.Version & ".xls"))
         mWorkSheet = CType(mWorkBook.Sheets(1), Microsoft.Office.Interop.Excel.Worksheet)
         Dim excelRange As Microsoft.Office.Interop.Excel.Range = mWorkSheet.UsedRange
         excelRange.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell).Activate()
         mCurrentRow = mExcelApp.ActiveCell.Row + 1

    End If

    Here is how i try to close everything

    If mFirstPass Then
         mWorkBook.SaveAs(System.IO.Path.Combine(mFileLocation, mMTDefinition.Description & "_" & mMTDefinition.Version & ".xls")) …
Run Code Online (Sandbox Code Playgroud)

.net vb.net office-interop

5
推荐指数
1
解决办法
7933
查看次数

必须为此操作打开商店-System.IO.Packaging.Package

我正在使用System.IO.Packaing.Package类压缩文件。可以同时运行我的应用程序的多个实例,同时读取和保存文件。当处理小文件时,一切似乎都很好,但是如果涉及到大文件,如果应用程序的两个实例同时保存,我将收到一条消息,提示存储必须为此操作打开,并显示如下堆栈跟踪。

据我了解,使用小于10mb的文件包时,数据存储在某些内存流中,但是当内部大于10mb时,它将切换到IsolatedStorage。考虑到这一点,我能够找到即使这些实例正在运行,它们都可以解决相同的隔离存储位置,而且我相信这就是问题所在。我能够找到一种破解方法来强制每个实例解决使用以下代码将其定位到其他位置:

var rootDirUserField= typeof(IsolatedStorageFile).GetField("s_RootDirUser", BindingFlags.NonPublic | BindingFlags.Static);
rootDirUserField.SetValue(null, "<unique location in isolated storage>");
Run Code Online (Sandbox Code Playgroud)

即使这使问题消失了,我一点也不喜欢它。请帮助弄清楚如何优雅地解决此问题。在进一步的研究中,我发现IsolatedStorage甚至不打算与多个线程一起使用,这使我想知道为什么在处理Packages时它是一种选择。

   at System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, IsolatedStorageFile isf)
   at MS.Internal.IO.Packaging.PackagingUtilities.SafeIsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, ReliableIsolatedStorageFileFolder folder)
   at MS.Internal.IO.Packaging.PackagingUtilities.CreateUserScopedIsolatedStorageFileStreamWithRandomName(Int32 retryCount, String& fileName)
   at MS.Internal.IO.Packaging.SparseMemoryStream.EnsureIsolatedStoreStream()
   at MS.Internal.IO.Packaging.SparseMemoryStream.SwitchModeIfNecessary()
   at MS.Internal.IO.Packaging.SparseMemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
   at MS.Internal.IO.Zip.ZipIOFileItemStream.Write(Byte[] buffer, Int32 offset, Int32 count)
   at MS.Internal.IO.Zip.ProgressiveCrcCalculatingStream.Write(Byte[] buffer, Int32 offset, Int32 count)
   at MS.Internal.IO.Zip.ZipIOModeEnforcingStream.Write(Byte[] buffer, Int32 offset, Int32 count)
Run Code Online (Sandbox Code Playgroud)

更新:

另外,可能会遇到问题,因为要访问IsolatedStorage,您的代码必须具有所有必要的本机平台操作系统权限,否则,将无法创建IsolatedStorage流。

更新2

已发布Windows …

c# isolatedstorage system.io.packaging

5
推荐指数
0
解决办法
1958
查看次数