init
This commit is contained in:
79
Common/DTS.Common.Serialization/File.Writer.cs
Normal file
79
Common/DTS.Common.Serialization/File.Writer.cs
Normal file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* File.Writer.cs
|
||||
*
|
||||
* Copyright © 2009
|
||||
* Diversified Technical Systems, Inc.
|
||||
* All Rights Reserved
|
||||
*/
|
||||
|
||||
using System.Text;
|
||||
using DTS.Common.Utilities;
|
||||
using DTS.Common.Utilities.DotNetProgrammingConstructs;
|
||||
|
||||
namespace DTS.Serialization
|
||||
{
|
||||
// *** see File.cs ***
|
||||
public abstract partial class File
|
||||
{ ///
|
||||
/// <summary>
|
||||
/// A class framework for a file writer. There can (and should) be several Write methods, one for
|
||||
/// each type that can be written into the file format. But it must have at least one,
|
||||
/// and that's what's outlined by this base implementation.
|
||||
/// </summary>
|
||||
///
|
||||
/// <typeparam name="T">
|
||||
/// The file type that this writer belongs to.
|
||||
/// </typeparam>
|
||||
///
|
||||
public abstract partial class Writer<T> : Exceptional, IWriter
|
||||
where T : File
|
||||
{
|
||||
protected int _defaultEncoding = Encoding.UTF8.CodePage;
|
||||
public virtual int DefaultEncoding
|
||||
{
|
||||
get => _defaultEncoding;
|
||||
set => _defaultEncoding = value;
|
||||
}
|
||||
///
|
||||
/// <summary>
|
||||
/// Initialize an instance of the DTS.Serialization.File.Writer class. This one-and-only
|
||||
/// constructor is marked as "internal", implying that these types of object should only
|
||||
/// be created by some factory method (intended to be in the hosting File object) and
|
||||
/// then passed to the user.
|
||||
/// </summary>
|
||||
///
|
||||
/// <param name="fileType">
|
||||
/// The associated <see cref="DTS.Serialization.File"/>-based class.
|
||||
/// </param>
|
||||
///
|
||||
public Writer(T fileType, int encoding)
|
||||
{
|
||||
try
|
||||
{
|
||||
FileType = fileType;
|
||||
DefaultEncoding = encoding;
|
||||
}
|
||||
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
throw new Exception("encountered problem constructing " + GetType().FullName, ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the <see cref="DTS.Serialization.File"/>-type associated with this reader.
|
||||
/// </summary>
|
||||
protected T FileType
|
||||
{
|
||||
get => _FileType.Value;
|
||||
private set => _FileType.Value = value;
|
||||
}
|
||||
private readonly Property<T> _FileType
|
||||
= new Property<T>(
|
||||
typeof(Reader<T>).Namespace + ".File.Reader.FileType",
|
||||
null,
|
||||
false
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user