我有一个库“foo”,它由一个部分“bar”组成,并导入 dart:io 库。库和部件在 'foo.dart' 中声明如下:
// in foo.dart
library foo;
import 'dart:io';
part "bar.dart"; // resolves
class Foo {
Bar bar = new Bar(); // resolves
HttpServer server = new HttpServer(); // resolves
}
'foo.dart' 和 'bar.dart' 位于同一目录中。
'bar.dart' 引用库 foo,如下所示:
// in bar.dart
part of foo; // does not resolve
class Bar {
Foo foo = new Foo(); // does not resolve
HttpServer server = new HttpServer // does not resolve
}
但在 Dart 编辑器中,我在“bar.dart”中看到一条警告,说“无法解析 foo”。因此,我在 foo.dart 中声明的任何导入(例如 'dart:io')都不适用于 bar.dart,我的任何 foo.dart 定义也不可用,并且由于 bar.dart 是 foo 的一部分,因此它是不允许导入任何其他库或声明任何其他部分。
我想以这样的方式组织我的代码: * 我带入 foo.dart 的任何导入都可用于 bar.dart(和其他源部分) * 在一个库源部分中创建的库定义可用于其他库源部分。*(显然)bar.dart 中的库定义可用于 foo.dart(这已经按预期工作)
有人可以帮我理解如何完成这些吗?