C# 无法从 x.ISessionContext 转换为 y.ISessionContext
C# cannot convert from x.ISessionContext to y.ISessionContext
我在使用 base 和 ref 时遇到这个奇怪的错误。它说我无法在 base.
的单词上下文中将 Consona.Business.ISessionContext 转换为 M2MDomain.ISessionContext
//This class controls the functions in MolDatasheets
[BusinessObject("MolDatasheets")]
public class ExtendedMolDatasheets : BusinessComponent
{
//This method creates a refrence to base
public ExtendedMolDatasheets(ref Consona.Business.ISessionContext context) : base(context)
{
}
我不知道为什么当相同的代码可以在其他文件中工作时它不会转换。
因为Consona.Business.ISessionContext
和M2MDomain.ISessionContext
是两个独立的class。仅仅因为它们的名称相同并不意味着它们相同 class。它们驻留在完全不同的命名空间中,可能是完全不同的库。
除非在目标 class 中为源 class 定义了隐式转换运算符,否则您将得到您遇到的错误。
我 不 推荐隐式转换,顺便说一句——我建议定义一个必须显式调用的转换函数。您的函数必须手动将第一种类型转换为第二种类型,但这在您的应用程序中是有意义的。
我在使用 base 和 ref 时遇到这个奇怪的错误。它说我无法在 base.
的单词上下文中将 Consona.Business.ISessionContext 转换为 M2MDomain.ISessionContext//This class controls the functions in MolDatasheets
[BusinessObject("MolDatasheets")]
public class ExtendedMolDatasheets : BusinessComponent
{
//This method creates a refrence to base
public ExtendedMolDatasheets(ref Consona.Business.ISessionContext context) : base(context)
{
}
我不知道为什么当相同的代码可以在其他文件中工作时它不会转换。
因为Consona.Business.ISessionContext
和M2MDomain.ISessionContext
是两个独立的class。仅仅因为它们的名称相同并不意味着它们相同 class。它们驻留在完全不同的命名空间中,可能是完全不同的库。
除非在目标 class 中为源 class 定义了隐式转换运算符,否则您将得到您遇到的错误。
我 不 推荐隐式转换,顺便说一句——我建议定义一个必须显式调用的转换函数。您的函数必须手动将第一种类型转换为第二种类型,但这在您的应用程序中是有意义的。