Merge branch 'develop'
* origin/develop: Fix DateTime wrapper documentation Fixes #45 Pass Encoding parameter to the ZipFile.Open method Fixes #47 Added link to NuGet badge (#43) Fix disposable pattern to allow to protect behavior when inherited (#39)
This commit is contained in:
Коммит
bcabcca93d
|
@ -1,6 +1,7 @@
|
||||||
# SystemWrapper
|
# SystemWrapper
|
||||||
|
|
||||||
![NuGet version](https://img.shields.io/nuget/v/SystemWrapper.Interfaces.svg) ![branch: master](http://img.shields.io/badge/branch-master-blue.svg?style=flat) [![Build status: master](https://ci.appveyor.com/api/projects/status/1126fol0d56a8my8/branch/master?svg=true)](https://ci.appveyor.com/project/jozefizso/systemwrapper/branch/master) ° ![branch: master](http://img.shields.io/badge/branch-develop-blue.svg?style=flat) [![Build status: develop](https://ci.appveyor.com/api/projects/status/1126fol0d56a8my8/branch/develop?svg=true)](https://ci.appveyor.com/project/jozefizso/systemwrapper/branch/develop)
|
[![NuGet version](https://img.shields.io/nuget/v/SystemWrapper.Interfaces.svg)](https://www.nuget.org/packages/SystemWrapper.Wrappers/)
|
||||||
|
![branch: master](http://img.shields.io/badge/branch-master-blue.svg?style=flat) [![Build status: master](https://ci.appveyor.com/api/projects/status/1126fol0d56a8my8/branch/master?svg=true)](https://ci.appveyor.com/project/jozefizso/systemwrapper/branch/master) ° ![branch: master](http://img.shields.io/badge/branch-develop-blue.svg?style=flat) [![Build status: develop](https://ci.appveyor.com/api/projects/status/1126fol0d56a8my8/branch/develop?svg=true)](https://ci.appveyor.com/project/jozefizso/systemwrapper/branch/develop)
|
||||||
|
|
||||||
> **SystemWrapper** is .NET library for easier testing of system APIs.
|
> **SystemWrapper** is .NET library for easier testing of system APIs.
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ namespace SystemInterface
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wrapper for <see cref="System.Version"/> class.
|
/// Wrapper for <see cref="System.DateTime"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IDateTime
|
public interface IDateTime
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
@ -135,14 +136,40 @@ namespace SystemWrapper.Tests.IO.Compression
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void Open_WithEncoding_Creates_ZipArchiveWrap()
|
public void Open_WithUTF8Encoding_Creates_OpensZipWithCorrectEncoding()
|
||||||
{
|
{
|
||||||
|
var assembly = Assembly.GetAssembly(typeof(ZipFileWrapTests));
|
||||||
|
var testFilePath = assembly.CodeBase.Substring(8); //remove the "file://" from the front
|
||||||
|
testFilePath = Path.GetDirectoryName(testFilePath) + @"\TestData\Encoding_UTF8.zip";
|
||||||
|
|
||||||
var instance = new ZipFileWrap();
|
var instance = new ZipFileWrap();
|
||||||
instance.CreateFromDirectory(ArchiveDirectory, ArchiveFileName);
|
using (var archive = instance.Open(testFilePath, System.IO.Compression.ZipArchiveMode.Read, Encoding.UTF8))
|
||||||
using (var archive = instance.Open(ArchiveFileName, System.IO.Compression.ZipArchiveMode.Read, Encoding.UTF8))
|
|
||||||
{
|
{
|
||||||
Assert.IsNotNull(archive);
|
Assert.IsNotNull(archive);
|
||||||
Assert.IsInstanceOf<ZipArchiveWrap>(archive);
|
Assert.IsInstanceOf<ZipArchiveWrap>(archive);
|
||||||
|
|
||||||
|
var entry = archive.Entries.First();
|
||||||
|
Assert.AreEqual("text-ľščťžýáíé.txt", entry.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Open_WithWindows1250Encoding_OpensZipWithCorrectEncoding()
|
||||||
|
{
|
||||||
|
var assembly = Assembly.GetAssembly(typeof(ZipFileWrapTests));
|
||||||
|
var testFilePath = assembly.CodeBase.Substring(8); //remove the "file://" from the front
|
||||||
|
testFilePath = Path.GetDirectoryName(testFilePath) + @"\TestData\Encoding_Windows1250.zip";
|
||||||
|
|
||||||
|
var instance = new ZipFileWrap();
|
||||||
|
|
||||||
|
var encodingWindows1250 = Encoding.GetEncoding(1250);
|
||||||
|
using (var archive = instance.Open(testFilePath, System.IO.Compression.ZipArchiveMode.Read, encodingWindows1250))
|
||||||
|
{
|
||||||
|
Assert.IsNotNull(archive);
|
||||||
|
Assert.IsInstanceOf<ZipArchiveWrap>(archive);
|
||||||
|
|
||||||
|
var entry = archive.Entries.First();
|
||||||
|
Assert.AreEqual("text-ľščťžýáíé.txt", entry.Name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,4 +185,4 @@ namespace SystemWrapper.Tests.IO.Compression
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,6 +118,12 @@
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
<None Include="Settings.StyleCop" />
|
<None Include="Settings.StyleCop" />
|
||||||
<None Include="SystemWrapper.snk" />
|
<None Include="SystemWrapper.snk" />
|
||||||
|
<Content Include="TestData\Encoding_UTF8.zip">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="TestData\Encoding_Windows1250.zip">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
|
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -168,6 +168,16 @@
|
||||||
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
this.directoryEntry.Dispose();
|
this.directoryEntry.Dispose();
|
||||||
}
|
}
|
||||||
|
@ -184,4 +194,4 @@
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
namespace SystemWrapper.ActiveDirectory
|
namespace SystemWrapper.ActiveDirectory
|
||||||
{
|
{
|
||||||
|
using System;
|
||||||
using System.Collections.Specialized;
|
using System.Collections.Specialized;
|
||||||
using System.DirectoryServices;
|
using System.DirectoryServices;
|
||||||
|
|
||||||
|
@ -129,6 +130,16 @@
|
||||||
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
this.directorySearcher.Dispose();
|
this.directorySearcher.Dispose();
|
||||||
}
|
}
|
||||||
|
@ -162,4 +173,4 @@
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
namespace SystemWrapper.ActiveDirectory
|
namespace SystemWrapper.ActiveDirectory
|
||||||
{
|
{
|
||||||
|
using System;
|
||||||
using System.DirectoryServices.AccountManagement;
|
using System.DirectoryServices.AccountManagement;
|
||||||
|
|
||||||
using SystemWrapper.ActiveDirectory.Contracts;
|
using SystemWrapper.ActiveDirectory.Contracts;
|
||||||
|
@ -51,10 +52,20 @@ namespace SystemWrapper.ActiveDirectory
|
||||||
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
this.principalContext.Dispose();
|
this.principalContext.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,6 +147,16 @@ namespace SystemWrapper.ActiveDirectory
|
||||||
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
this.searchResultCollection.Dispose();
|
this.searchResultCollection.Dispose();
|
||||||
}
|
}
|
||||||
|
@ -191,4 +201,4 @@ namespace SystemWrapper.ActiveDirectory
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ using SystemInterface;
|
||||||
namespace SystemWrapper
|
namespace SystemWrapper
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Wrapper for <see cref="System.Version"/> class.
|
/// Wrapper for <see cref="System.DateTime"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class DateTimeWrap : IDateTime
|
public class DateTimeWrap : IDateTime
|
||||||
|
@ -795,4 +795,4 @@ namespace SystemWrapper
|
||||||
return returnValue;
|
return returnValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
@ -258,6 +259,16 @@ namespace SystemWrapper.IO
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
BinaryReaderInstance.Close();
|
BinaryReaderInstance.Close();
|
||||||
}
|
}
|
||||||
|
|
|
@ -247,6 +247,16 @@ namespace SystemWrapper.IO
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
BinaryWriterInstance.Close();
|
BinaryWriterInstance.Close();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System.IO.Compression;
|
using System;
|
||||||
|
using System.IO.Compression;
|
||||||
using SystemInterface.IO;
|
using SystemInterface.IO;
|
||||||
using SystemInterface.IO.Compression;
|
using SystemInterface.IO.Compression;
|
||||||
|
|
||||||
|
@ -75,6 +76,16 @@ namespace SystemWrapper.IO.Compression
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
DeflateStreamInstance.Dispose();
|
DeflateStreamInstance.Dispose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,16 @@ namespace SystemWrapper.IO.Compression
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
Instance.Dispose();
|
Instance.Dispose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System.IO.Compression;
|
using System.IO.Compression;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using SystemInterface.IO.Compression;
|
using SystemInterface.IO.Compression;
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ namespace SystemWrapper.IO.Compression
|
||||||
|
|
||||||
public IZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, Encoding entryNameEncoding)
|
public IZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, Encoding entryNameEncoding)
|
||||||
{
|
{
|
||||||
return new ZipArchiveWrap(ZipFile.Open(archiveFileName, mode));
|
return new ZipArchiveWrap(ZipFile.Open(archiveFileName, mode, entryNameEncoding));
|
||||||
}
|
}
|
||||||
|
|
||||||
public IZipArchive OpenRead(string archiveFileName)
|
public IZipArchive OpenRead(string archiveFileName)
|
||||||
|
|
|
@ -568,6 +568,16 @@ namespace SystemWrapper.IO
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
FileStreamInstance.Dispose();
|
FileStreamInstance.Dispose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -406,6 +406,16 @@ namespace SystemWrapper.IO
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
MemoryStreamInstance.Dispose();
|
MemoryStreamInstance.Dispose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -376,6 +376,16 @@ namespace SystemWrapper.IO
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
StreamReaderInstance.Dispose();
|
StreamReaderInstance.Dispose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -212,6 +212,16 @@
|
||||||
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
this.StreamInstance.Dispose();
|
this.StreamInstance.Dispose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Security.AccessControl;
|
using System.Security.AccessControl;
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using SystemInterface.Microsoft.Win32;
|
using SystemInterface.Microsoft.Win32;
|
||||||
|
@ -19,6 +20,16 @@ namespace SystemWrapper.Microsoft.Win32
|
||||||
/// Implementation of the Dispose.
|
/// Implementation of the Dispose.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
RegistryKeyInstance.Dispose();
|
RegistryKeyInstance.Dispose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
using System.ServiceModel;
|
using System.ServiceModel;
|
||||||
|
|
||||||
using SystemInterface.Attributes;
|
|
||||||
using SystemInterface.ServiceModel;
|
using SystemInterface.ServiceModel;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -69,6 +67,7 @@
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
this.Dispose(true);
|
this.Dispose(true);
|
||||||
|
GC.SuppressFinalize(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -258,11 +258,17 @@ namespace SystemWrapper.Xml
|
||||||
/// <exception cref="T:System.InvalidOperationException">An <see cref="T:System.Xml.XmlWriter"/> method was called before a previous asynchronous operation finished. In this case, <see cref="T:System.InvalidOperationException"/> is thrown with the message “An asynchronous operation is already in progress.”</exception>
|
/// <exception cref="T:System.InvalidOperationException">An <see cref="T:System.Xml.XmlWriter"/> method was called before a previous asynchronous operation finished. In this case, <see cref="T:System.InvalidOperationException"/> is thrown with the message “An asynchronous operation is already in progress.”</exception>
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
var disposable = this.instance as IDisposable;
|
Dispose(true);
|
||||||
if (disposable != null)
|
GC.SuppressFinalize(true);
|
||||||
{
|
}
|
||||||
disposable.Dispose();
|
|
||||||
}
|
/// <summary>
|
||||||
|
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">Indicates whether or not unmanaged resources should be disposed.</param>
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
this.instance.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Загрузка…
Ссылка в новой задаче