
[ object,uuID( ActualUuIDHere),dual,nonextensible,oleautomation,hIDden,helpstring( ActualHelpStringHere )]interface IWorkflow : Idispatch { //irrelevant propertIEs here }[ uuID(ActualClassIDHere),noncreatable]coclass Workflow { [default] interface IWorkflow;}; 为了从C#应用程序中使用组件,我添加了对C#项目的引用,并生成了一个interop程序集.
在Visual Studio 2003的对象浏览器中,我看到interop包含:
public abstract interface IWorkflow;public abstract interface workflow : IWorkflow;public class workflowClass : System.Object;
很明显,由于某种原因,类和接口的名称大小写不同.对于在同一类型库中声明的其他20个接口,这不会发生 – 对于它们,ISomething对应于Something和SomethingClass.
我查看了项目的.IDl文件 – 标识符Workflow在其他任何地方都没有使用过.
这种奇怪的行为是什么原因以及它如何解决?
解决方法 查看您的代码,看看是否有任何参数,属性或方法名称具有“工作流程”的确切拼写和大小写.它几乎肯定是COM接口函数的参数.将名称更改为paramWorkflow,您的问题应该消失.为什么会这样?类型库工具中存在一个错误,它会在内部以不区分大小写的方式存储标识符.因此,如果您有两个具有不同capatilization的名称,它们将存储在同一个插槽中.然后在生成时直接使用这些名称,以便发出不同的外壳.
解决此问题的方法是通过创建不同的名称来防止冲突.
总结以上是内存溢出为你收集整理的c# – 互 *** 作程序集中的名称大小写错误全部内容,希望文章能够帮你解决c# – 互 *** 作程序集中的名称大小写错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)