SchemaCreator.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / ModelProviders / SchemaCreator.cs / 1305376 / SchemaCreator.cs

                            using System.Data.Linq; 
using System.Data.Objects;
using System.Globalization;
using System.Web.Resources;
 
namespace System.Web.DynamicData.ModelProviders {
    internal class SchemaCreator { 
        private static SchemaCreator s_instance = new SchemaCreator(); 

        public static SchemaCreator Instance { 
            get {
                return s_instance;
            }
        } 

        public virtual DataModelProvider CreateDataModel(object contextInstance, Func contextFactory) { 
            if (IsDataContext(contextInstance.GetType())) { 
                return new DLinqDataModelProvider(contextInstance, contextFactory);
            } 
            if (IsObjectContext(contextInstance.GetType())) {
                return new EFDataModelProvider(contextInstance, contextFactory);
            }
 
            throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, DynamicDataResources.SchemaCreator_UnknownModel, contextInstance.GetType().FullName));
        } 
 
        public virtual bool ValidDataContextType(Type contextType) {
            // 
            return IsDataContext(contextType) || IsObjectContext(contextType);
        }

        internal static bool IsDataContext(Type contextType) { 
            return IsValidType(contextType);
        } 
 
        internal static bool IsObjectContext(Type contextType) {
            return IsValidType(contextType); 
        }

        private static bool IsValidType(Type contextType) where T : class {
            return contextType != null && typeof(T).IsAssignableFrom(contextType); 
        }
    } 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK