2016-05-29 3 views
0

から型 'CustomerMapping.DataAcessLayer.SqlDataAccess' をロードできませんでした。は型 'CustomerMapping.DataAcessLayer.SqlDataAccess' アセンブリからをロードできませんでした 'CustomerMapping、バージョン= 1.0.0.0、文化=中立、 なPublicKeyToken = nullの' アセンブリ

私の人生のこの例外の原因を突き止めることはできません。

これはCustomerMapping

 protected void btnAdd_Click(object sender, EventArgs e) 
    { 

     try 
     { 
      int result = new Customer() { LegalEntity = ddlLegalEntity.Text.Trim(), OldSourceEnvironment = ddlOldSourceEnvironment.Text.Trim(), OldCompanyCode = ddlOldCompanyCode.Text.Trim(), OldAccountNumber = txtOldAccountNumber.Text.Trim(), NewAccountNumber = txtNewAccountNumber.Text.Trim(), BusinessName = txtBusinessName.Text.Trim(), BusinessUnit = txtBusinessUnit.Text.Trim(), DefaultDimensionString = txtDefaultDimensionString.Text.Trim()}.AddCustomer(); 

      if (result > 0) 
      { 
       lvCustomers.EditIndex = -1; 
       lblCurrent.Text = "Added Successfully!"; 
       ddlLegalEntity.Text = string.Empty; 
       ddlOldSourceEnvironment.Text = string.Empty; 
       ddlOldCompanyCode.Text = string.Empty; 
       txtOldAccountNumber.Text = string.Empty; 
       txtNewAccountNumber.Text = string.Empty; 
       txtBusinessName.Text = string.Empty; 
       txtBusinessUnit.Text = string.Empty; 
       txtDefaultDimensionString.Text = string.Empty; 
      } 
      else 
      { 
       lvCustomers.EditIndex = -1; 
       lblCurrent.Text = "Sorry, Add failed."; 
      } 
     } 
     catch (Exception ex) 
     { 
      lblCurrent.Text = ex.Message; 
     } 
    } 

ための私のコードですこれはDataAccessLayer`

namespace CustomerMapping 
{ 
public abstract class DataAccessLayer 
{ 
    private string connectionString = ConfigurationManager.ConnectionStrings ["AXMAPConnectionString"].ToString(); 

    public string ConnectionString 
    { 
     get 
     { 
      if (!string.IsNullOrEmpty(connectionString)) 
       return connectionString; 
      else 
       throw new ApplicationException("Web.config ConnectionString Error. Check the App Settings in web.config and verify the connectionstring is present."); 
     } 
    } 
    public static DataAccessLayer GetDataAccessLayer() 
    { 
     try 
     { 
      Type type = Type.GetType(Utility.DataAccessType, true); 

      // Throw an error if wrong base type 
      if (type.BaseType != typeof(DataAccessLayer)) 
       throw new Exception("Data Access Layer does not inherit DataAccessLayer!"); 

      return (DataAccessLayer)Activator.CreateInstance(type); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 

    } 

    public abstract int AddCustomer(Customer customer); 
} 
} 

のためにこれはSqlDataAccess

namespace CustomerMapping 
{ 
public class SqlDataAccess : DataAccessLayer 

{ 
    private SqlConnection sqlCn = null; 

    private SqlConnection OpenConnection() 
    { 
     try 
     { 
      if (ConnectionString == string.Empty) 
       throw (new ArgumentOutOfRangeException("ConnectionString")); 

      sqlCn = new SqlConnection(ConnectionString); 
      sqlCn.Open(); 
      return sqlCn; 

     } 
     catch (Exception ex) 
     { 
      throw new ApplicationException("DB Connection failed.", ex); 
     } 
    } 
    private void CloseConnection() 
    { 
     if (sqlCn != null) 
      sqlCn.Close(); 
    } 

    public override int AddCustomer(Customer customer) 
    { 
     try 
     { 
      SqlCommand sqlCmd = new SqlCommand("INSERT INTO [AXMAP].[Customers] ([LegalEntity], [OldSourceEnvironment], [OldCompanyCode], [OldAcctNum], [AccountNum], [Name], [BusinessUnit], [DefaultDimensionStr]) VALUES (@LegalEntity, @OldSourceEnvironment, @OldCompanyCode, @OldAcctNum, @AccountNum, @Name, @BusinessUnit, @DefaultDimensionStr)"); 
      sqlCmd.Parameters.AddRange(new SqlParameter[] { new SqlParameter("@LegalEntity", customer.LegalEntity), new SqlParameter("@OldSourceEnvironment", customer.OldSourceEnvironment), 
      new SqlParameter("@OldCompanyCode", customer.OldCompanyCode), new SqlParameter("@OldAcctNum", customer.OldAccountNumber), new SqlParameter("@AccountNum", customer.NewAccountNumber), 
      new SqlParameter("@Name", customer.BusinessName), new SqlParameter("@BusinessUnit", customer.BusinessUnit), new SqlParameter("DefaultDimensionStr", customer.DefaultDimensionString) }); 

      sqlCmd.Connection = OpenConnection(); 
      int result = (int)sqlCmd.ExecuteScalar(); 
      sqlCmd.Connection.Close(); 
      return result; 
     } 
     catch (SqlException ex) 
     { 
      throw ex; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

} 
} 


    <configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-CustomerMapping-20160522115525.mdf;Initial Catalog=aspnet-CustomerMapping-20160522115525;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    <add name="AXMAPConnectionString" connectionString="Data Source=DESKTOP-IV1JN1C\SQLEXPRESS;Initial Catalog=AXMAP;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="DataAccessType" value="CustomerMapping.DataAcessLayer.SqlDataAccess" /> 
    <add key="webpages:Version" value="3.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    <add key="ConnectionString"/> 
    </appSettings> 
    <system.web> 
    <authentication mode="None" /> 
    <compilation debug="true" targetFramework="4.5.2" /> 
    <httpRuntime targetFramework="4.5.2" /> 
    <httpModules> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> 
    </httpModules> 
    </system.web> 
    <system.webServer> 
    <modules> 
     <remove name="FormsAuthentication" /> 
     <remove name="ApplicationInsightsWebTracking" /> 
     <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" /> 
    </modules> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <remove name="OPTIONSVerbHandler" /> 
     <remove name="TRACEVerbHandler" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 
    <validation validateIntegratedModeConfiguration="false" /> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> 
     <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
    <system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" /> 
    </compilers> 
    </system.codedom> 
</configuration> 
+0

何あなたのweb.configファイルは見えますか? –

+0

元の投稿を編集して追加しました – Psymbionic

答えて

0

名前空間が正しくないためです。 CustomerMapping.SqlDataAccessである必要があります。

<add key="DataAccessType" value="CustomerMapping.SqlDataAccess,CustomerMapping" /> 

反射がFYI

(DataAccessLayer)Activator.CreateInstance(
    "CustomerMapping.SqlDataAccess,CustomerMapping"); 

のようになります:あなたは貧乏人の依存性注入を作っているように見えます。 Autofac、Ninject、Structure MapなどのIoCコンテナを使用して適切なDIを使用しないでください。

+0

Reflectionはどういう意味ですか?それは何か私が追加する必要がありますか?私はDIを学び、それを適切に行う方法に取り組んでいます。 – Psymbionic

+0

あなたは何をしているのですか?詳細はこちら[こちら](https://msdn.microsoft.com/en-us/library/b8ytshk6.aspx)を参照してください。 DI(Dependency Injection)について知りたい場合は、[Mark Seemannによる.NETの依存性注入](http://www.amazon.com/Dependency-Injection-NET-Mark-Seemann/dp/1935182501/ref = sr_1_1?s = books&ie = UTF8&qid = 1464492613&sr = 1-1&keywords =依存関係+注入) – Win

+0

答えは私のものとどう違うのですか? http://stackoverflow.com/a/37505157/109941 –

関連する問題