本文整理汇总了C#中MongoDB.Bson.IO.JsonWriterContext类的典型用法代码示例。如果您正苦于以下问题:C# JsonWriterContext类的具体用法?C# JsonWriterContext怎么用?C# JsonWriterContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
JsonWriterContext类属于MongoDB.Bson.IO命名空间,在下文中一共展示了JsonWriterContext类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: JsonWriter
// constructors
/// <summary>
/// Initializes a new instance of the JsonWriter class.
/// </summary>
/// <param name="writer">A TextWriter.</param>
/// <param name="settings">Optional JsonWriter settings.</param>
public JsonWriter(TextWriter writer, JsonWriterSettings settings)
: base(settings)
{
_textWriter = writer;
_jsonWriterSettings = settings; // already frozen by base class
_context = new JsonWriterContext(null, ContextType.TopLevel, "");
State = BsonWriterState.Initial;
}
示例2: JsonWriter
/// <summary>
/// Initializes a new instance of the JsonWriter class.
/// </summary>
/// <param name="writer">A TextWriter.</param>
/// <param name="settings">Optional JsonWriter settings.</param>
public JsonWriter(
TextWriter writer,
JsonWriterSettings settings
) {
this.textWriter = writer;
this.settings = settings.Freeze();
context = new JsonWriterContext(null, ContextType.TopLevel, "");
state = BsonWriterState.Initial;
}
示例3: JsonWriter
/// <summary>
/// Initializes a new instance of the JsonWriter class.
/// </summary>
/// <param name="writer">A TextWriter.</param>
/// <param name="settings">Optional JsonWriter settings.</param>
public JsonWriter(TextWriter writer, JsonWriterSettings settings)
: base(settings)
{
if (writer == null)
{
throw new ArgumentNullException("writer");
}
_textWriter = writer;
_jsonWriterSettings = settings; // already frozen by base class
_context = new JsonWriterContext(null, ContextType.TopLevel, "");
State = BsonWriterState.Initial;
}
示例4: WriteStartDocument
/// <summary>
/// Writes the start of a BSON document to the writer.
/// </summary>
public override void WriteStartDocument()
{
if (Disposed) { throw new ObjectDisposedException("JsonWriter"); }
if (State != BsonWriterState.Value && State != BsonWriterState.Initial && State != BsonWriterState.ScopeDocument)
{
ThrowInvalidState("WriteStartDocument", BsonWriterState.Value, BsonWriterState.Initial, BsonWriterState.ScopeDocument);
}
base.WriteStartDocument();
if (State == BsonWriterState.Value || State == BsonWriterState.ScopeDocument)
{
WriteNameHelper(Name);
}
_textWriter.Write("{");
var contextType = (State == BsonWriterState.ScopeDocument) ? ContextType.ScopeDocument : ContextType.Document;
_context = new JsonWriterContext(_context, contextType, _jsonWriterSettings.IndentChars);
State = BsonWriterState.Name;
}
示例5: WriteStartArray
/// <summary>
/// Writes the start of a BSON array to the writer.
/// </summary>
public override void WriteStartArray()
{
if (Disposed) { throw new ObjectDisposedException("JsonWriter"); }
if (State != BsonWriterState.Value && State != BsonWriterState.Initial)
{
ThrowInvalidState("WriteStartArray", BsonWriterState.Value, BsonWriterState.Initial);
}
base.WriteStartArray();
WriteNameHelper(Name);
_textWriter.Write("[");
_context = new JsonWriterContext(_context, ContextType.Array, _jsonWriterSettings.IndentChars);
State = BsonWriterState.Value;
}
示例6: WriteStartDocument
public override void WriteStartDocument()
{
if (disposed) { throw new ObjectDisposedException("JsonWriter"); }
if (state != BsonWriterState.Value && state != BsonWriterState.Initial && state != BsonWriterState.ScopeDocument) {
var message = string.Format("WriteStartDocument cannot be called when State is: {0}", state);
throw new InvalidOperationException(message);
}
if (state == BsonWriterState.Value || state == BsonWriterState.ScopeDocument) {
WriteNameHelper(name);
}
textWriter.Write("{");
var contextType = (state == BsonWriterState.ScopeDocument) ? ContextType.ScopeDocument : ContextType.Document;
context = new JsonWriterContext(context, contextType, settings.IndentChars);
state = BsonWriterState.Name;
}
示例7: WriteStartArray
public override void WriteStartArray()
{
if (disposed) { throw new ObjectDisposedException("JsonWriter"); }
if (state != BsonWriterState.Value && state != BsonWriterState.Initial) {
var message = string.Format("WriteStartArray cannot be called when State is: {0}", state);
throw new InvalidOperationException(message);
}
WriteNameHelper(name);
textWriter.Write("[");
context = new JsonWriterContext(context, ContextType.Array, settings.IndentChars);
state = BsonWriterState.Value;
}
示例8: JsonWriterContext
// constructors
internal JsonWriterContext(JsonWriterContext parentContext, ContextType contextType, string indentChars)
{
_parentContext = parentContext;
_contextType = contextType;
_indentation = (parentContext == null) ? indentChars : parentContext.Indentation + indentChars;
}
示例9: WriteStartDocument
/// <summary>
/// Writes the start of a BSON document to the writer.
/// </summary>
public override void WriteStartDocument() {
if (disposed) { throw new ObjectDisposedException("JsonWriter"); }
if (state != BsonWriterState.Value && state != BsonWriterState.Initial && state != BsonWriterState.ScopeDocument) {
ThrowInvalidState("WriteStartDocument", BsonWriterState.Value, BsonWriterState.Initial, BsonWriterState.ScopeDocument);
}
if (state == BsonWriterState.Value || state == BsonWriterState.ScopeDocument) {
WriteNameHelper(name);
}
textWriter.Write("{");
var contextType = (state == BsonWriterState.ScopeDocument) ? ContextType.ScopeDocument : ContextType.Document;
context = new JsonWriterContext(context, contextType, settings.IndentChars);
state = BsonWriterState.Name;
}
示例10: WriteStartArray
/// <summary>
/// Writes the start of a BSON array to the writer.
/// </summary>
public override void WriteStartArray() {
if (disposed) { throw new ObjectDisposedException("JsonWriter"); }
if (state != BsonWriterState.Value && state != BsonWriterState.Initial) {
ThrowInvalidState("WriteStartArray", BsonWriterState.Value, BsonWriterState.Initial);
}
WriteNameHelper(name);
textWriter.Write("[");
context = new JsonWriterContext(context, ContextType.Array, settings.IndentChars);
state = BsonWriterState.Value;
}
示例11: Close
// public methods
/// <summary>
/// Closes the writer.
/// </summary>
public override void Close()
{
// Close can be called on Disposed objects
if (State != BsonWriterState.Closed)
{
Flush();
_context = null;
State = BsonWriterState.Closed;
}
}
示例12: Close
/// <summary>
/// Closes the writer.
/// </summary>
public override void Close() {
// Close can be called on Disposed objects
if (state != BsonWriterState.Closed) {
Flush();
if (settings.CloseOutput) {
textWriter.Close();
}
context = null;
state = BsonWriterState.Closed;
}
}
示例13: WriteEndDocument
/// <summary>
/// Writes the end of a BSON document to the writer.
/// </summary>
public override void WriteEndDocument()
{
if (Disposed) { throw new ObjectDisposedException("JsonWriter"); }
if (State != BsonWriterState.Name)
{
ThrowInvalidState("WriteEndDocument", BsonWriterState.Name);
}
base.WriteEndDocument();
if (_jsonWriterSettings.Indent && _context.HasElements)
{
_textWriter.Write(_jsonWriterSettings.NewLineChars);
if (_context.ParentContext != null)
{
_textWriter.Write(_context.ParentContext.Indentation);
}
_textWriter.Write("}");
}
else
{
_textWriter.Write(" }");
}
if (_context.ContextType == ContextType.ScopeDocument)
{
_context = _context.ParentContext;
WriteEndDocument();
}
else
{
_context = _context.ParentContext;
}
if (_context == null)
{
State = BsonWriterState.Done;
}
else
{
State = GetNextState();
}
}
示例14: WriteEndArray
/// <summary>
/// Writes the end of a BSON array to the writer.
/// </summary>
public override void WriteEndArray()
{
if (Disposed) { throw new ObjectDisposedException("JsonWriter"); }
if (State != BsonWriterState.Value)
{
ThrowInvalidState("WriteEndArray", BsonWriterState.Value);
}
base.WriteEndArray();
_textWriter.Write("]");
_context = _context.ParentContext;
State = GetNextState();
}
示例15: WriteEndDocument
public override void WriteEndDocument()
{
if (disposed) { throw new ObjectDisposedException("JsonWriter"); }
if (state != BsonWriterState.Name) {
var message = string.Format("WriteEndDocument cannot be called when State is: {0}", state);
throw new InvalidOperationException(message);
}
if (settings.Indent && context.HasElements) {
textWriter.Write(settings.NewLineChars);
if (context.ParentContext != null) {
textWriter.Write(context.ParentContext.Indentation);
}
textWriter.Write("}");
} else {
textWriter.Write(" }");
}
if (context.ContextType == ContextType.ScopeDocument) {
context = context.ParentContext;
WriteEndDocument();
} else {
context = context.ParentContext;
}
if (context == null) {
state = BsonWriterState.Done;
} else {
state = GetNextState();
}
}