DebuggerWriter

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.Globalization;

namespace HandFree.DAL
{
    
public class DebuggerWriter : TextWriter
    {
        
private bool isOpen;
        
private static UnicodeEncoding encoding;
        
private readonly int level;
        
private readonly string category;

        
/// <summary>
        
/// Initializes a new instance of the <see cref="DebuggerWriter"/> class.
        
/// </summary>
        public DebuggerWriter()
            : 
this(0, Debugger.DefaultCategory)
        {
        }

        
/// <summary>
        
/// Initializes a new instance of the <see cref="DebuggerWriter"/> class with the specified level and category.
        
/// </summary>
        
/// <param name="level">A description of the importance of the messages.</param>
        
/// <param name="category">The category of the messages.</param>
        public DebuggerWriter(int level, string category)
            : 
this(level, category, CultureInfo.CurrentCulture)
        {
        }

        
/// <summary>
        
/// Initializes a new instance of the <see cref="DebuggerWriter"/> class with the specified level, category and format provider.
        
/// </summary>
        
/// <param name="level">A description of the importance of the messages.</param>
        
/// <param name="category">The category of the messages.</param>
        
/// <param name="formatProvider">An <see cref="IFormatProvider"/> object that controls formatting.</param>
        public DebuggerWriter(int level, string category, IFormatProvider formatProvider)
            : 
base(formatProvider)
        {
            
this.level = level;
            
this.category = category;
            
this.isOpen = true;
        }

        
protected override void Dispose(bool disposing)
        {
            isOpen 
= false;
            
base.Dispose(disposing);
        }

        
public override void Write(char value)
        {
            
if (!isOpen)
            {
                
throw new ObjectDisposedException(null);
            }
            Debugger.Log(level, category, value.ToString());
        }

        
public override void Write(string value)
        {
            
if (!isOpen)
            {
                
throw new ObjectDisposedException(null);
            }
            
if (value != null)
            {
                Debugger.Log(level, category, value);
            }
        }

        
public override void Write(char[] buffer, int index, int count)
        {
            
if (!isOpen)
            {
                
throw new ObjectDisposedException(null);
            }
            
if (buffer == null || index < 0 || count < 0 || buffer.Length - index < count)
            {
                
base.Write(buffer, index, count); // delegate throw exception to base class
            }
            Debugger.Log(level, category, 
new string(buffer, index, count));
        }

        
public override Encoding Encoding
        {
            
get
            {
                
if (encoding == null)
                {
                    encoding 
= new UnicodeEncoding(falsefalse);
                }
                
return encoding;
            }
        }

        
public int Level
        {
            
get { return level; }
        }

        
public string Category
        {
            
get { return category; }
        }
    }

}

调用方法

        /// <summary>
        
/// 判断用户名密码是否正确
        
/// </summary>
        
/// <param name="username">用户名</param>
        
/// <param name="password">密码</param>
        
/// <returns></returns>
        public bool Exists(string username, string password)
        {
            
bool isexists = false;
            db.Log 
= new DebuggerWriter();
            
int user = db.AdminUser.Count(p => p.AUACCOUNT == username && p.AUPWD == password);
            isexists 
= user != 0 ? true : false;
            
return isexists;
        }
原文地址:https://www.cnblogs.com/yinpeng186/p/2047961.html