#region Apache License // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to you under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // #endregion using System; using log4net; using log4net.Core; using log4net.Util.TypeConverters; namespace log4net.Layout { /// /// Type converter for the interface /// /// /// /// Used to convert objects to the interface. /// Supports converting from the interface to /// the interface using the . /// /// /// Nicko Cadell /// Gert Driesen public class RawLayoutConverter : IConvertFrom { #region Override Implementation of IRawLayout /// /// Can the sourceType be converted to an /// /// the source to be to be converted /// true if the source type can be converted to /// /// /// Test if the can be converted to a /// . Only is supported /// as the . /// /// public bool CanConvertFrom(Type sourceType) { // Accept an ILayout object return (typeof(ILayout).IsAssignableFrom(sourceType)); } /// /// Convert the value to a object /// /// the value to convert /// the object /// /// /// Convert the object to a /// object. If the object /// is a then the /// is used to adapt between the two interfaces, otherwise an /// exception is thrown. /// /// public object ConvertFrom(object source) { ILayout layout = source as ILayout; if (layout != null) { return new Layout2RawLayoutAdapter(layout); } throw ConversionNotSupportedException.Create(typeof(IRawLayout), source); } #endregion } }