无法调用需要类型参数的c#方法
在这个问题上尝试另一种方法: 这一次,我没有尝试直接使用对象,而是尝试使用库的另一部分将现有内容写入sql 我正在尝试执行类OOPFactory.X12.ImportX12无法调用需要类型参数的c#方法,c#,enums,C#,Enums,在这个问题上尝试另一种方法: 这一次,我没有尝试直接使用对象,而是尝试使用库的另一部分将现有内容写入sql 我正在尝试执行类OOPFactory.X12.ImportX12 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using OopFactory.X12.Parsing; using OopFactory.X1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using OopFactory.X12.Parsing;
using OopFactory.X12.Repositories;
using OopFactory.X12.Sql;
using System.IO;
using System.Diagnostics;
namespace OopFactory.X12.ImportX12
{
class Program
{
enum testc { incrementme };
static void Main(string[] args)
{
string dsn = ConfigurationManager.ConnectionStrings["X12"].ConnectionString;
bool throwExceptionOnSyntaxErrors = ConfigurationManager.AppSettings["ThrowExceptionOnSyntaxErrors"] == "true";
string[] segments = ConfigurationManager.AppSettings["IndexedSegments"].Split(',');
string parseDirectory = ConfigurationManager.AppSettings["ParseDirectory"];
string parseSearchPattern = ConfigurationManager.AppSettings["ParseSearchPattern"];
string archiveDirectory = ConfigurationManager.AppSettings["ArchiveDirectory"];
string failureDirectory = ConfigurationManager.AppSettings["FailureDirectory"];
string sqlDateType = ConfigurationManager.AppSettings["SqlDateType"];
int segmentBatchSize = Convert.ToInt32(ConfigurationManager.AppSettings["SqlSegmentBatchSize"]);
var specFinder = new SpecificationFinder();
var parser = new X12Parser(throwExceptionOnSyntaxErrors);
parser.ParserWarning += new X12Parser.X12ParserWarningEventHandler(parser_ParserWarning);
var repo = new SqlTransactionRepository<int>(dsn, specFinder, segments, ConfigurationManager.AppSettings["schema"], ConfigurationManager.AppSettings["containerSchema"], segmentBatchSize, sqlDateType);
//var repo = new OopFactory.X12.Sql.SqlTransactionRepository(dsn,"test");
//var repo = new OopFactory.X12.Sql.SqlTransactionRepository(dsn,new testc());
假设你的类型是人 您可以使用typeof(Person): 或获取person实例的类型:
Person p = new Person();
SqlTransactionRepository(dsn, p.GetType());
根据源代码中的文档() 标识参数应具有: 所有标识列的类型 并且它支持
int
或long
,这意味着您应该通过以下任一项:
typeof(int)
或
希望有帮助 请访问您可能只是有一个输入错误,注意您的错误消息
sqltransactionrepository
拼写错误,使我相信这可能是一个输入错误。这解决了问题,非常有用!非常感谢。
Person p = new Person();
SqlTransactionRepository(dsn, p.GetType());
typeof(int)
typeof(long)