我有一个类,它将Generic Type作为其初始化的一部分.
public class AnimalContext<T>
{
public DoAnimalStuff()
{
//AnimalType Specific Code
}
}
Run Code Online (Sandbox Code Playgroud)
我现在能做的是
AnimalContext<Donkey> donkeyContext = new AnimalContext<Donkey>();
AnimalContext<Orca> orcaContext = new AnimalContext<Orca>();
Run Code Online (Sandbox Code Playgroud)
但我需要/想要做的是能够声明一个AnimalContext初始化为只在运行时知道的类型.例如,
Animal a = MyFavoriteAnimal(); //returns an instance of a class
//implementing an animal
AnimalContext<a.GetType()> a_Context = new AnimalContext<a.GetType()>();
a_Context.DoAnimalStuff();
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?我似乎无法在网上找到答案.
我对这个小组有一个普遍的问题.我即将为我的团队启动一个大项目,我怀疑,我们将作为一个桌面应用程序(我通常是我的应用程序前景中的网络人员,但我愿意改变.)
我最担心的是,当需要进行更改时,公司当前的桌面应用程序已经成为维护或更重要的分配方式的痛苦.所以我想开发一些东西,促使用户(我们的员工)在他们的计算机上过时更新软件.
那些之前已经做过这件事的人,我将不胜感激任何关于需要注意的陷阱的建议.此外,我会对任何人发现有助于解决类似要求的在线资源感兴趣.
谢谢.
编辑:我意识到我很糟糕!我忘了提一些最重要的细节.它将是一个使用.NET框架编写的Window应用程序,面向Win XP及更高版本.
我在这里有另一个实体框架问题.我有一个名为Book的复杂对象,该对象有许多类型为Contributor的集合,例如Writer,Letterer,Colorist等.但贡献者不一定是特定角色的范围.因此,相同的贡献者(具有相同的ContributorId)可以是Writer和Colorist.
public Book {
public ICollection<Contributor> Writers { get; set; }
public ICollection<Contributor> Artists { get; set; }
public ICollection<Contributor> Pencilers { get; set; }
public ICollection<Contributor> Inkers { get; set; }
public ICollection<Contributor> Colorists { get; set; }
public ICollection<Contributor> Letterers { get; set; }
public ICollection<Contributor> CoverArtists { get; set; }
public ICollection<Contributor> OtherContributors { get; set; }
}
public Contributor {
public int ContributorId { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我遇到了麻烦,查看我在这里和其他网站上找到的例子,确定我将如何表示合适的模型.我希望Db …
我确信这已被问了一百万次,但是当我搜索所有的例子都不太合适时,所以我想我还是应该问它.
我有两个数组,每个数组总共包含6个项目.例如:
string[] Colors=
new string[] { "red", "orange", "yellow", "green", "blue", "purple" };
string[] Foods=
new string[] { "fruit", "grain", "dairy", "meat", "sweet", "vegetable" };
Run Code Online (Sandbox Code Playgroud)
在这两个阵列之间,有36种可能的组合(例如"红色水果","红色颗粒").
现在我需要进一步将这些组合成六组唯一值.
例如:
meal[0]=
new Pair[] {
new Pair { One="red", Two="fruit" },
new Pair { One="orange", Two="grain" },
new Pair { One="yellow", Two="dairy" },
new Pair { One="green", Two="meat" },
new Pair { One="blue", Two="sweet" },
new Pair { One="purple", Two="vegetable" }
};
Run Code Online (Sandbox Code Playgroud)
在哪里吃饭
Pair[][] meal;
Run Code Online (Sandbox Code Playgroud)
在我的"餐"列表中不能重复任何元素.因此,只有一个"红色"项目和一个"肉"项目等.
我可以根据前两个数组轻松创建对,但我在如何最好地将它们组合成唯一组合方面做了一个空白.
我目前在家里和计算机上的计算机上本地使用Perforce,我很高兴.但我想与我的同事分享SCM Love,我们即将(可能)添加第三个开发人员.随着第三人的加入,我们无法继续使用Perforce的免费版本.我并不反对付款,但900美元的座位对于我工作的公司来说太陡了.
现在,我知道在StackOverflow上有一个强大的SVN跟随者,我尊重这一点.但是当我以前调查它时,我并不关心某些方面.例如在Perforce中,如果我尝试签入需要同步或合并的文件,它会在签入之前提示我这样做,并且我得到一个可视工具来控制合并.IIRC,在SVN中,当您签入文件时,它会自动为您合并,这可能不会产生与您期望的完全相同的后果.不过,我承认我可能会错误地记住这一点.
另外,我似乎记得SVN是基于文件夹而不是基于文件的?在我目前的工作环境中,这可能非常可怕,我继承了一些没有文件夹结构的应用程序.
当然,它绝对必须插入Visual Studio 2008.
鉴于这些要求,您是否仍会推荐SVN,还是会推荐其他产品?
假设您有一个对象,为了示例,我们将调用ScoreHotChicksEngine.并且说ScoreHotChicksEngine的构造函数期望传递一个IDataReader,其中包含属于Lonely Geeks的评分热门小鸡的属性值.
ScoreChicksEngine(IDataReader reader);
Run Code Online (Sandbox Code Playgroud)
好的,这是我想收集的信息......
作为开发人员,您会发现在传递给ScoreChicksEngine之前必须先阅读读者会更有用
IDataReader = command.ExecuteReader();
reader.Read();
ScoreChicksEngine SCE = new ScoreChicksEngine(reader);
Run Code Online (Sandbox Code Playgroud)
或者你会假设引擎本身会调用该函数并可能处理空值?
IDataReader = command.ExecuteReader();
ScoreChicksEngine SCE = new ScoreChicksEngine(reader);
if (SCE.HasReaderData()) doSomething();
Run Code Online (Sandbox Code Playgroud) 我有一个 ASP.NET MVC (4.6.1) 网站,我们正在尝试使用 Sentry 服务对其进行监控。
根据安装文档,它只是说尽早初始化 Sentry,但他们示例的结构让我有理由怀疑是否没有更多内容。在我的 Gloabl.asax.cs 文件中,我调用包含 Sentry 初始化的自定义模型类。这是该课程的副本:
public class SentryModel
{
public static void Configure()
{
var environment = ConfigurationManager.AppSettings["Environment"];
//escape the method if we are in a development environment
if (environment.Equals("development", StringComparison.CurrentCultureIgnoreCase))
return;
Assembly web = Assembly.GetExecutingAssembly();
AssemblyName webName = web.GetName();
string myVersion = webName.Version.ToString();
string dsn_data = ConfigurationManager.ConnectionStrings["Sentry"].ConnectionString;
using (SentrySdk.Init(o =>
{
o.Dsn = new Dsn(dsn_data);
o.MaxBreadcrumbs = 50;
o.Debug = true;
o.Environment = environment;
o.Release = myVersion;
o.AttachStacktrace = true;
})) …
Run Code Online (Sandbox Code Playgroud) 我有一个带有节点的XML文档,它可以在同一类型的其他节点中递归显示.例如:
<root>
<Categories>
<Category>
<CategoryId>1</CategoryId>
<CategoryName>Cat 1</CategoryName>
<ChildCategories>
<Category>
<CategoryId>3</CategoryId>
<CategoryName>Cat 3</CategoryName>
</Category>
</ChildCategories>
</Category>
<Category>
<CategoryId>5</CategoryId>
<CategoryName>Cat 5 </CategoryName>
</Category>
</Categories>
</root>
Run Code Online (Sandbox Code Playgroud)
因此,我需要能够通过其CategoryID值查询特定的类别或子类别(甚至是孩子的孩子等).这在XPATH中可行吗?
TIA
我有一个数据库,其中登录数据库的主用户没有直接对任何表的权限.用户需要执行已明确授予它的存储过程.这涵盖了所需的任何简单的CRUD操作.但是现在,我需要动态执行SQL,但我希望在用户上保持相同的安全级别.一个例子是
UPDATE [Table] SET [Column 1] = @Column1
Run Code Online (Sandbox Code Playgroud)
但在这种情况下[第1列]及其值将在运行时设置.
我知道在存储过程中执行动态代码的唯一方法是使用sp_runsql,但是出于安全原因,创建使用sp_runsql执行动态查询的存储过程会失败(并且通常不是很聪明)
任何人都可以想到一种实现这种功能和安全性的方法吗?
我有一些代码用于以编程方式创建一个文档发送到打印机.它是这样的:
private void pd_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs ev)
{
ev.Graphics.DrawImage(pictureBox1.Image, 50, 100);
string drawToday="Date : "+strToday;
string drawPolicyNo="Policy # : " + strPolicyNo;
string drawUser="User : " + strUser;
Font drawFont=new Font("Arial",30);
SolidBrush drawBrush=new SolidBrush(Color.Black);
PointF drawPointToday=new Point(50,400);
PointF drawPointPolicyNo=new Point(50,450);
PointF drawPointUser=new Point(50,500);
ev.Graphics.DrawString(drawToday,drawFont,drawBrush,drawPointToday);
ev.Graphics.DrawString(drawPolicyNo,drawFont,drawBrush,drawPointPolicyNo);
ev.Graphics.DrawString(drawUser,drawFont,drawBrush,drawPointUser);
}
Run Code Online (Sandbox Code Playgroud)
它的有效代码,但现在我需要执行相同的过程,而是将其写入图像文件,以便可以将其发送到浏览器并从那里打印.重用这段代码应该相对简单,但不幸的是,我正在挂起用于替换PrintPageEventArgument的绘图表面.
谢谢
编辑:谢谢我得到的我只需要另一个Graphics对象,但Graphics对象本身没有公共构造函数,所以我要找的是关于我需要什么对象才能创建Graphics对象的建议借鉴.我想也许是位图?位图当然是基于像素而不是基于点的,所以我不确定这是最好的介质.
c# ×4
.net ×2
algorithm ×1
architecture ×1
asp.net-mvc ×1
combinations ×1
dynamic-sql ×1
generics ×1
global-asax ×1
graphics ×1
matrix ×1
perforce ×1
permutation ×1
printing ×1
sentry ×1
sql-server ×1
svn ×1
t-sql ×1
xpath ×1